catch up with development

Signed-off-by: Ralf Mollik <ramollik@compex-commerce.com>
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..a7dcdf2
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,37 @@
+**/target
+**.java._trace
+**git.properties
+***.log.properties
+**/.antlr-generator-*.jar
+**/target/
+**/.metadata/
+
+**/emf-gen/**/.gitignore
+**/src-gen/**/.gitignore
+**/git.properties
+**/*.java._trace
+**/*.log
+**/*.log.properties
+
+**/bin/
+**/build/
+*.class
+*.ctrl
+**/Debug/
+.DS_Store
+*.ear
+*.war
+
+**/*.actionbin
+**/*.blipbin
+**/*.chartbin
+**/*.cubebin
+**/*.datatypebin
+**/*.dtobin
+**/*.entitybin
+**/*.servicebin
+**/*.tablebin
+**/*.uibin
+**/*.uisemanticbin
+**/*.xtendbin
+
diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/jenkins.build.config.xml b/jenkins.build.config.xml
index 2c44359..086ef26 100644
--- a/jenkins.build.config.xml
+++ b/jenkins.build.config.xml
@@ -17,21 +17,25 @@
         <jenkins.build.dependencies>
                 <jenkins.build.dependency>org.eclipse.osbp.authentication</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.bpm.api</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.core.api</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.dsl</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.eventbroker</jenkins.build.dependency>
-                <jenkins.build.dependency>org.eclipse.osbp.persistence</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.preferences</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.runtime</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.runtime.web</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.ui.api</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.utils</jenkins.build.dependency>
-                <jenkins.build.dependency>org.eclipse.osbp.utils.blob</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.utils.ui</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.xtext.addons</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.xtext.authorization</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.xtext.basic</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.xtext.blip</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.xtext.cube</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.xtext.datamart.common</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.xtext.datamart.lib</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.xtext.entitymock.common</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.xtext.functionlibrary</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.xtext.i18n</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.xtext.oxtype</jenkins.build.dependency>
         </jenkins.build.dependencies>
 </jenkins>
diff --git a/org.eclipse.osbp.xtext.datamartdsl.feature/.settings/org.eclipse.core.resources.prefs b/org.eclipse.osbp.xtext.datamartdsl.feature/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datamartdsl.feature/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/org.eclipse.osbp.xtext.datamartdsl.feature/.settings/org.eclipse.m2e.core.prefs b/org.eclipse.osbp.xtext.datamartdsl.feature/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datamartdsl.feature/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/org.eclipse.osbp.xtext.datamartdsl.feature/.settings/org.eclipse.xtend.core.Xtend.prefs b/org.eclipse.osbp.xtext.datamartdsl.feature/.settings/org.eclipse.xtend.core.Xtend.prefs
new file mode 100644
index 0000000..19e3115
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datamartdsl.feature/.settings/org.eclipse.xtend.core.Xtend.prefs
@@ -0,0 +1,11 @@
+//outlet.DEFAULT_OUTPUT.sourceFolder.src/test/java.directory=src/test/generated-sources/xtend
+BuilderConfiguration.is_project_specific=true
+eclipse.preferences.version=1
+is_project_specific=true
+outlet.DEFAULT_OUTPUT.hideLocalSyntheticVariables=true
+outlet.DEFAULT_OUTPUT.installDslAsPrimarySource=false
+outlet.DEFAULT_OUTPUT.sourceFolder.emf-gen.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.sourceFolder.src-gen.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.sourceFolder.src.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.sourceFolder.xtend-gen.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.userOutputPerSourceFolder=true
diff --git a/org.eclipse.osbp.xtext.datamartdsl.feature/feature.xml b/org.eclipse.osbp.xtext.datamartdsl.feature/feature.xml
index ca50854..82b13f9 100644
--- a/org.eclipse.osbp.xtext.datamartdsl.feature/feature.xml
+++ b/org.eclipse.osbp.xtext.datamartdsl.feature/feature.xml
@@ -14,7 +14,8 @@
         id="org.eclipse.osbp.xtext.datamartdsl.feature"
         label="%featureName"
         version="0.9.0.qualifier"
-        provider-name="%providerName">
+        provider-name="%providerName"
+		plugin="org.eclipse.osbp.xtext.datamartdsl">
         
     <description>
         %description
@@ -43,6 +44,13 @@
         unpack="false"/>
         
     <plugin
+        id="org.eclipse.osbp.xtext.datamartdsl.ide"
+        download-size="0"
+        install-size="0"
+        version="0.0.0"
+        unpack="false"/>
+        
+    <plugin
         id="org.eclipse.osbp.xtext.datamartdsl.ui"
         download-size="0"
         install-size="0"
diff --git a/org.eclipse.osbp.xtext.datamartdsl.ide/.classpath b/org.eclipse.osbp.xtext.datamartdsl.ide/.classpath
new file mode 100644
index 0000000..5903347
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datamartdsl.ide/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="src" path="src-gen"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>
diff --git a/org.eclipse.osbp.xtext.datamartdsl.ide/.project b/org.eclipse.osbp.xtext.datamartdsl.ide/.project
new file mode 100644
index 0000000..01580cf
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datamartdsl.ide/.project
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.osbp.xtext.datamartdsl.ide</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.babel.editor.rbeBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+		<nature>org.eclipse.babel.editor.rbeNature</nature>
+	</natures>
+</projectDescription>
diff --git a/org.eclipse.osbp.xtext.datamartdsl.ide/.settings/org.eclipse.core.resources.prefs b/org.eclipse.osbp.xtext.datamartdsl.ide/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datamartdsl.ide/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/org.eclipse.osbp.xtext.datamartdsl.ide/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.osbp.xtext.datamartdsl.ide/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..0c68a61
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datamartdsl.ide/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/org.eclipse.osbp.xtext.datamartdsl.ide/.settings/org.eclipse.m2e.core.prefs b/org.eclipse.osbp.xtext.datamartdsl.ide/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datamartdsl.ide/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/org.eclipse.osbp.xtext.datamartdsl.ide/.settings/org.eclipse.xtend.core.Xtend.prefs b/org.eclipse.osbp.xtext.datamartdsl.ide/.settings/org.eclipse.xtend.core.Xtend.prefs
new file mode 100644
index 0000000..5da8aa3
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datamartdsl.ide/.settings/org.eclipse.xtend.core.Xtend.prefs
@@ -0,0 +1,10 @@
+//outlet.DEFAULT_OUTPUT.sourceFolder.src/test/java.directory=src/test/generated-sources/xtend
+BuilderConfiguration.is_project_specific=true
+eclipse.preferences.version=1
+outlet.DEFAULT_OUTPUT.hideLocalSyntheticVariables=true
+outlet.DEFAULT_OUTPUT.installDslAsPrimarySource=false
+outlet.DEFAULT_OUTPUT.sourceFolder.emf-gen.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.sourceFolder.src-gen.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.sourceFolder.src.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.sourceFolder.xtend-gen.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.userOutputPerSourceFolder=true
diff --git a/org.eclipse.osbp.xtext.datamartdsl.ide/META-INF/MANIFEST.MF b/org.eclipse.osbp.xtext.datamartdsl.ide/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..ff869a7
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datamartdsl.ide/META-INF/MANIFEST.MF
@@ -0,0 +1,19 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.osbp.xtext.datamartdsl.ide
+Bundle-Vendor: Eclipse OSBP
+Bundle-Version: 0.9.0.qualifier
+Bundle-SymbolicName: org.eclipse.osbp.xtext.datamartdsl.ide;singleton:=true
+Bundle-Classpath: .,src/,src-gen/
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Require-Bundle: org.antlr.runtime,
+ org.eclipse.xtext.xbase.ide,
+ org.eclipse.xtext.ide,
+ org.eclipse.osbp.xtext.oxtype;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.xtext.datamartdsl;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.xtext.datamartdsl.ide;bundle-version="[0.9.0,0.10.0)"
+Export-Package: org.eclipse.osbp.xtext.datamartdsl.ide,
+ org.eclipse.osbp.xtext.datamartdsl.ide.contentassist.antlr,
+ org.eclipse.osbp.xtext.datamartdsl.ide.contentassist.antlr.internal
+
diff --git a/org.eclipse.osbp.xtext.datamartdsl.ide/build.properties b/org.eclipse.osbp.xtext.datamartdsl.ide/build.properties
new file mode 100644
index 0000000..6ef1a59
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datamartdsl.ide/build.properties
@@ -0,0 +1,5 @@
+bin.includes = META-INF/,\
+				.,\
+               src/,\
+               src-gen/
+source.. = src/,src-gen/
diff --git a/org.eclipse.osbp.xtext.datamartdsl.ide/pom.xml b/org.eclipse.osbp.xtext.datamartdsl.ide/pom.xml
new file mode 100644
index 0000000..7624c8e
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datamartdsl.ide/pom.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--#======================================================================= -->
+<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) -->
+<!--# All rights reserved. This program and the accompanying materials -->
+<!--# are made available under the terms of the Eclipse Public License v1.0 -->
+<!--# which accompanies this distribution, and is available at -->
+<!--# http://www.eclipse.org/legal/epl-v10.html -->
+<!--# -->
+<!--# Contributors: -->
+<!--#     Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation -->
+<!--#======================================================================= -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.eclipse.osbp.xtext.datamartdsl</groupId>
+        <artifactId>org.eclipse.osbp.xtext.datamartdsl.aggregator</artifactId>
+        <version>0.9.0-SNAPSHOT</version>
+        <relativePath>..</relativePath>
+    </parent>
+    <artifactId>org.eclipse.osbp.xtext.datamartdsl.ide</artifactId>
+    <packaging>eclipse-plugin</packaging>
+
+</project>
diff --git a/org.eclipse.osbp.xtext.datamartdsl.ide/src-gen/META-INF/services/org.eclipse.xtext.ISetup b/org.eclipse.osbp.xtext.datamartdsl.ide/src-gen/META-INF/services/org.eclipse.xtext.ISetup
new file mode 100644
index 0000000..67a6170
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datamartdsl.ide/src-gen/META-INF/services/org.eclipse.xtext.ISetup
@@ -0,0 +1 @@
+org.eclipse.osbp.xtext.datamartdsl.ide.DatamartDSLIdeSetup
diff --git a/org.eclipse.osbp.xtext.datamartdsl.ide/src-gen/org/eclipse/osbp/xtext/datamartdsl/ide/AbstractDatamartDSLIdeModule.java b/org.eclipse.osbp.xtext.datamartdsl.ide/src-gen/org/eclipse/osbp/xtext/datamartdsl/ide/AbstractDatamartDSLIdeModule.java
new file mode 100644
index 0000000..64ab90b
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datamartdsl.ide/src-gen/org/eclipse/osbp/xtext/datamartdsl/ide/AbstractDatamartDSLIdeModule.java
@@ -0,0 +1,60 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2017 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  All rights reserved. This program and the accompanying materials           
+ *  are made available under the terms of the Eclipse Public License v1.0       
+ *  which accompanies this distribution, and is available at                  
+ *  http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ *  Contributors:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ * generated by Xtext 2.11.0
+ *
+ */
+
+package org.eclipse.osbp.xtext.datamartdsl.ide;
+
+import com.google.inject.Binder;
+import com.google.inject.name.Names;
+import org.eclipse.osbp.xtext.datamartdsl.ide.contentassist.antlr.DatamartDSLParser;
+import org.eclipse.osbp.xtext.datamartdsl.ide.contentassist.antlr.internal.InternalDatamartDSLLexer;
+import org.eclipse.xtext.ide.LexerIdeBindings;
+import org.eclipse.xtext.ide.editor.contentassist.FQNPrefixMatcher;
+import org.eclipse.xtext.ide.editor.contentassist.IPrefixMatcher;
+import org.eclipse.xtext.ide.editor.contentassist.IProposalConflictHelper;
+import org.eclipse.xtext.ide.editor.contentassist.antlr.AntlrProposalConflictHelper;
+import org.eclipse.xtext.ide.editor.contentassist.antlr.IContentAssistParser;
+import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.Lexer;
+import org.eclipse.xtext.xbase.ide.DefaultXbaseIdeModule;
+
+/**
+ * Manual modifications go to {@link DatamartDSLIdeModule}.
+ */
+@SuppressWarnings("all")
+public abstract class AbstractDatamartDSLIdeModule extends DefaultXbaseIdeModule {
+
+	// contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+	public void configureContentAssistLexer(Binder binder) {
+		binder.bind(Lexer.class)
+			.annotatedWith(Names.named(LexerIdeBindings.CONTENT_ASSIST))
+			.to(InternalDatamartDSLLexer.class);
+	}
+	
+	// contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+	public Class<? extends IContentAssistParser> bindIContentAssistParser() {
+		return DatamartDSLParser.class;
+	}
+	
+	// contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+	public Class<? extends IProposalConflictHelper> bindIProposalConflictHelper() {
+		return AntlrProposalConflictHelper.class;
+	}
+	
+	// contributed by org.eclipse.xtext.xtext.generator.exporting.QualifiedNamesFragment2
+	public Class<? extends IPrefixMatcher> bindIPrefixMatcher() {
+		return FQNPrefixMatcher.class;
+	}
+	
+}
diff --git a/org.eclipse.osbp.xtext.datamartdsl.ide/src-gen/org/eclipse/osbp/xtext/datamartdsl/ide/contentassist/antlr/DatamartDSLParser.java b/org.eclipse.osbp.xtext.datamartdsl.ide/src-gen/org/eclipse/osbp/xtext/datamartdsl/ide/contentassist/antlr/DatamartDSLParser.java
new file mode 100644
index 0000000..0943067
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datamartdsl.ide/src-gen/org/eclipse/osbp/xtext/datamartdsl/ide/contentassist/antlr/DatamartDSLParser.java
@@ -0,0 +1,758 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2017 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  All rights reserved. This program and the accompanying materials           
+ *  are made available under the terms of the Eclipse Public License v1.0       
+ *  which accompanies this distribution, and is available at                  
+ *  http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ *  Contributors:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ * generated by Xtext 2.11.0
+ *
+ */
+
+package org.eclipse.osbp.xtext.datamartdsl.ide.contentassist.antlr;
+
+import com.google.inject.Inject;
+import java.util.HashMap;
+import java.util.Map;
+import org.eclipse.osbp.xtext.datamartdsl.ide.contentassist.antlr.internal.InternalDatamartDSLParser;
+import org.eclipse.osbp.xtext.datamartdsl.services.DatamartDSLGrammarAccess;
+import org.eclipse.xtext.AbstractElement;
+import org.eclipse.xtext.ide.editor.contentassist.antlr.AbstractContentAssistParser;
+
+public class DatamartDSLParser extends AbstractContentAssistParser {
+
+	@Inject
+	private DatamartDSLGrammarAccess grammarAccess;
+
+	private Map<AbstractElement, String> nameMappings;
+
+	@Override
+	protected InternalDatamartDSLParser createParser() {
+		InternalDatamartDSLParser result = new InternalDatamartDSLParser(null);
+		result.setGrammarAccess(grammarAccess);
+		return result;
+	}
+
+	@Override
+	protected String getRuleName(AbstractElement element) {
+		if (nameMappings == null) {
+			nameMappings = new HashMap<AbstractElement, String>() {
+				private static final long serialVersionUID = 1L;
+				{
+					put(grammarAccess.getDatamartSourceAccess().getAlternatives(), "rule__DatamartSource__Alternatives");
+					put(grammarAccess.getDatamartNavigationAccess().getAlternatives(), "rule__DatamartNavigation__Alternatives");
+					put(grammarAccess.getDatamartOperandAccess().getAlternatives(), "rule__DatamartOperand__Alternatives");
+					put(grammarAccess.getDatamartValueAccess().getAlternatives(), "rule__DatamartValue__Alternatives");
+					put(grammarAccess.getDatamartValueAccess().getAlternatives_2(), "rule__DatamartValue__Alternatives_2");
+					put(grammarAccess.getDatamartCubeElementAccess().getAlternatives(), "rule__DatamartCubeElement__Alternatives");
+					put(grammarAccess.getDatamartAdditionAccess().getAlternatives_1_0(), "rule__DatamartAddition__Alternatives_1_0");
+					put(grammarAccess.getDatamartMultiplicationAccess().getAlternatives_1_0(), "rule__DatamartMultiplication__Alternatives_1_0");
+					put(grammarAccess.getDatamartPrimaryAccess().getAlternatives(), "rule__DatamartPrimary__Alternatives");
+					put(grammarAccess.getDatamartNumberOrElementAccess().getAlternatives(), "rule__DatamartNumberOrElement__Alternatives");
+					put(grammarAccess.getDatamartMemberTupleAccess().getAlternatives_0_0(), "rule__DatamartMemberTuple__Alternatives_0_0");
+					put(grammarAccess.getDatamartSetTupleAccess().getAlternatives_0(), "rule__DatamartSetTuple__Alternatives_0");
+					put(grammarAccess.getDatamartAggregationAccess().getAlternatives_2(), "rule__DatamartAggregation__Alternatives_2");
+					put(grammarAccess.getDatamartSetAggregationAccess().getAlternatives_2(), "rule__DatamartSetAggregation__Alternatives_2");
+					put(grammarAccess.getDatamartElementAccess().getAlternatives(), "rule__DatamartElement__Alternatives");
+					put(grammarAccess.getDatamartHierarchyAccess().getAlternatives_5_2(), "rule__DatamartHierarchy__Alternatives_5_2");
+					put(grammarAccess.getDatamartHierarchyAccess().getOrderRefAlternatives_6_2_1_0(), "rule__DatamartHierarchy__OrderRefAlternatives_6_2_1_0");
+					put(grammarAccess.getAttributeFillerTypeAccess().getAlternatives(), "rule__AttributeFillerType__Alternatives");
+					put(grammarAccess.getAttributeFillerSignedDoubleRangeAccess().getAlternatives_1_0(), "rule__AttributeFillerSignedDoubleRange__Alternatives_1_0");
+					put(grammarAccess.getAttributeFillerSignedDoubleRangeAccess().getAlternatives_1_2(), "rule__AttributeFillerSignedDoubleRange__Alternatives_1_2");
+					put(grammarAccess.getAttributeFillerSignedIntegerRangeAccess().getAlternatives_2_0(), "rule__AttributeFillerSignedIntegerRange__Alternatives_2_0");
+					put(grammarAccess.getAttributeFillerSignedIntegerRangeAccess().getAlternatives_2_2(), "rule__AttributeFillerSignedIntegerRange__Alternatives_2_2");
+					put(grammarAccess.getAttributeFillerUnsignedDoubleRangeAccess().getAlternatives_1_0(), "rule__AttributeFillerUnsignedDoubleRange__Alternatives_1_0");
+					put(grammarAccess.getAttributeFillerUnsignedDoubleRangeAccess().getAlternatives_1_2(), "rule__AttributeFillerUnsignedDoubleRange__Alternatives_1_2");
+					put(grammarAccess.getAttributeFillerUnsignedIntegerRangeAccess().getAlternatives_2_0(), "rule__AttributeFillerUnsignedIntegerRange__Alternatives_2_0");
+					put(grammarAccess.getAttributeFillerUnsignedIntegerRangeAccess().getAlternatives_2_2(), "rule__AttributeFillerUnsignedIntegerRange__Alternatives_2_2");
+					put(grammarAccess.getXImportDeclarationAccess().getAlternatives_2(), "rule__XImportDeclaration__Alternatives_2");
+					put(grammarAccess.getXImportDeclarationAccess().getAlternatives_2_0_3(), "rule__XImportDeclaration__Alternatives_2_0_3");
+					put(grammarAccess.getXAnnotationAccess().getAlternatives_3_1(), "rule__XAnnotation__Alternatives_3_1");
+					put(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getAlternatives(), "rule__XAnnotationElementValueOrCommaList__Alternatives");
+					put(grammarAccess.getXAnnotationElementValueAccess().getAlternatives(), "rule__XAnnotationElementValue__Alternatives");
+					put(grammarAccess.getXAnnotationOrExpressionAccess().getAlternatives(), "rule__XAnnotationOrExpression__Alternatives");
+					put(grammarAccess.getXAssignmentAccess().getAlternatives(), "rule__XAssignment__Alternatives");
+					put(grammarAccess.getOpMultiAssignAccess().getAlternatives(), "rule__OpMultiAssign__Alternatives");
+					put(grammarAccess.getOpEqualityAccess().getAlternatives(), "rule__OpEquality__Alternatives");
+					put(grammarAccess.getXRelationalExpressionAccess().getAlternatives_1(), "rule__XRelationalExpression__Alternatives_1");
+					put(grammarAccess.getOpCompareAccess().getAlternatives(), "rule__OpCompare__Alternatives");
+					put(grammarAccess.getOpOtherAccess().getAlternatives(), "rule__OpOther__Alternatives");
+					put(grammarAccess.getOpOtherAccess().getAlternatives_5_1(), "rule__OpOther__Alternatives_5_1");
+					put(grammarAccess.getOpOtherAccess().getAlternatives_6_1(), "rule__OpOther__Alternatives_6_1");
+					put(grammarAccess.getOpAddAccess().getAlternatives(), "rule__OpAdd__Alternatives");
+					put(grammarAccess.getOpMultiAccess().getAlternatives(), "rule__OpMulti__Alternatives");
+					put(grammarAccess.getXUnaryOperationAccess().getAlternatives(), "rule__XUnaryOperation__Alternatives");
+					put(grammarAccess.getOpUnaryAccess().getAlternatives(), "rule__OpUnary__Alternatives");
+					put(grammarAccess.getOpPostfixAccess().getAlternatives(), "rule__OpPostfix__Alternatives");
+					put(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1(), "rule__XMemberFeatureCall__Alternatives_1");
+					put(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_0_0_0_1(), "rule__XMemberFeatureCall__Alternatives_1_0_0_0_1");
+					put(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_1_0_0_1(), "rule__XMemberFeatureCall__Alternatives_1_1_0_0_1");
+					put(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_1_3_1(), "rule__XMemberFeatureCall__Alternatives_1_1_3_1");
+					put(grammarAccess.getXPrimaryExpressionAccess().getAlternatives(), "rule__XPrimaryExpression__Alternatives");
+					put(grammarAccess.getXLiteralAccess().getAlternatives(), "rule__XLiteral__Alternatives");
+					put(grammarAccess.getXCollectionLiteralAccess().getAlternatives(), "rule__XCollectionLiteral__Alternatives");
+					put(grammarAccess.getXSwitchExpressionAccess().getAlternatives_2(), "rule__XSwitchExpression__Alternatives_2");
+					put(grammarAccess.getXCasePartAccess().getAlternatives_3(), "rule__XCasePart__Alternatives_3");
+					put(grammarAccess.getXExpressionOrVarDeclarationAccess().getAlternatives(), "rule__XExpressionOrVarDeclaration__Alternatives");
+					put(grammarAccess.getXVariableDeclarationAccess().getAlternatives_1(), "rule__XVariableDeclaration__Alternatives_1");
+					put(grammarAccess.getXVariableDeclarationAccess().getAlternatives_2(), "rule__XVariableDeclaration__Alternatives_2");
+					put(grammarAccess.getXFeatureCallAccess().getAlternatives_3_1(), "rule__XFeatureCall__Alternatives_3_1");
+					put(grammarAccess.getFeatureCallIDAccess().getAlternatives(), "rule__FeatureCallID__Alternatives");
+					put(grammarAccess.getIdOrSuperAccess().getAlternatives(), "rule__IdOrSuper__Alternatives");
+					put(grammarAccess.getXConstructorCallAccess().getAlternatives_4_1(), "rule__XConstructorCall__Alternatives_4_1");
+					put(grammarAccess.getXBooleanLiteralAccess().getAlternatives_1(), "rule__XBooleanLiteral__Alternatives_1");
+					put(grammarAccess.getXTryCatchFinallyExpressionAccess().getAlternatives_3(), "rule__XTryCatchFinallyExpression__Alternatives_3");
+					put(grammarAccess.getNumberAccess().getAlternatives(), "rule__Number__Alternatives");
+					put(grammarAccess.getNumberAccess().getAlternatives_1_0(), "rule__Number__Alternatives_1_0");
+					put(grammarAccess.getNumberAccess().getAlternatives_1_1_1(), "rule__Number__Alternatives_1_1_1");
+					put(grammarAccess.getJvmTypeReferenceAccess().getAlternatives(), "rule__JvmTypeReference__Alternatives");
+					put(grammarAccess.getJvmArgumentTypeReferenceAccess().getAlternatives(), "rule__JvmArgumentTypeReference__Alternatives");
+					put(grammarAccess.getJvmWildcardTypeReferenceAccess().getAlternatives_2(), "rule__JvmWildcardTypeReference__Alternatives_2");
+					put(grammarAccess.getAxisEnumAccess().getAlternatives(), "rule__AxisEnum__Alternatives");
+					put(grammarAccess.getFunctionEnumAccess().getAlternatives(), "rule__FunctionEnum__Alternatives");
+					put(grammarAccess.getParameterFunctionEnumAccess().getAlternatives(), "rule__ParameterFunctionEnum__Alternatives");
+					put(grammarAccess.getSetFunctionEnumAccess().getAlternatives(), "rule__SetFunctionEnum__Alternatives");
+					put(grammarAccess.getSetParameterFunctionEnumAccess().getAlternatives(), "rule__SetParameterFunctionEnum__Alternatives");
+					put(grammarAccess.getSetAggregationEnumAccess().getAlternatives(), "rule__SetAggregationEnum__Alternatives");
+					put(grammarAccess.getAggregationEnumAccess().getAlternatives(), "rule__AggregationEnum__Alternatives");
+					put(grammarAccess.getOperatorEnumAccess().getAlternatives(), "rule__OperatorEnum__Alternatives");
+					put(grammarAccess.getSqlAggregationEnumAccess().getAlternatives(), "rule__SqlAggregationEnum__Alternatives");
+					put(grammarAccess.getValueScaleEnumAccess().getAlternatives(), "rule__ValueScaleEnum__Alternatives");
+					put(grammarAccess.getTaskQueryTopicEnumAccess().getAlternatives(), "rule__TaskQueryTopicEnum__Alternatives");
+					put(grammarAccess.getTaskQueryColumnEnumAccess().getAlternatives(), "rule__TaskQueryColumnEnum__Alternatives");
+					put(grammarAccess.getTaskFilterEnumAccess().getAlternatives(), "rule__TaskFilterEnum__Alternatives");
+					put(grammarAccess.getOrderEnumAccess().getAlternatives(), "rule__OrderEnum__Alternatives");
+					put(grammarAccess.getDatamartModelAccess().getGroup(), "rule__DatamartModel__Group__0");
+					put(grammarAccess.getDatamartPackageAccess().getGroup(), "rule__DatamartPackage__Group__0");
+					put(grammarAccess.getDatamartPackageAccess().getGroup_3(), "rule__DatamartPackage__Group_3__0");
+					put(grammarAccess.getDatamartDefinitionAccess().getGroup(), "rule__DatamartDefinition__Group__0");
+					put(grammarAccess.getDatamartDefinitionAccess().getGroup_2(), "rule__DatamartDefinition__Group_2__0");
+					put(grammarAccess.getDatamartDefinitionAccess().getGroup_3(), "rule__DatamartDefinition__Group_3__0");
+					put(grammarAccess.getDatamartRoleAccess().getGroup(), "rule__DatamartRole__Group__0");
+					put(grammarAccess.getDatamartTaskAccess().getGroup(), "rule__DatamartTask__Group__0");
+					put(grammarAccess.getDatamartTaskAccess().getGroup_2(), "rule__DatamartTask__Group_2__0");
+					put(grammarAccess.getDatamartTaskAccess().getGroup_3(), "rule__DatamartTask__Group_3__0");
+					put(grammarAccess.getDatamartColumnAccess().getGroup(), "rule__DatamartColumn__Group__0");
+					put(grammarAccess.getDatamartTaskFilterAccess().getGroup(), "rule__DatamartTaskFilter__Group__0");
+					put(grammarAccess.getDatamartCubeAccess().getGroup(), "rule__DatamartCube__Group__0");
+					put(grammarAccess.getDatamartReferenceAccess().getGroup(), "rule__DatamartReference__Group__0");
+					put(grammarAccess.getDatamartEntityAccess().getGroup(), "rule__DatamartEntity__Group__0");
+					put(grammarAccess.getDatamartEntityAccess().getGroup_3(), "rule__DatamartEntity__Group_3__0");
+					put(grammarAccess.getDatamartEntityAccess().getGroup_3_1(), "rule__DatamartEntity__Group_3_1__0");
+					put(grammarAccess.getDatamartEntityAccess().getGroup_3_2(), "rule__DatamartEntity__Group_3_2__0");
+					put(grammarAccess.getDatamartEntityAccess().getGroup_3_3(), "rule__DatamartEntity__Group_3_3__0");
+					put(grammarAccess.getDatamartEntityAccess().getGroup_3_4(), "rule__DatamartEntity__Group_3_4__0");
+					put(grammarAccess.getDatamartEntityAccess().getGroup_3_5(), "rule__DatamartEntity__Group_3_5__0");
+					put(grammarAccess.getDatamartOwnerAccess().getGroup(), "rule__DatamartOwner__Group__0");
+					put(grammarAccess.getDatamartMemberAccess().getGroup(), "rule__DatamartMember__Group__0");
+					put(grammarAccess.getDatamartAxisAccess().getGroup(), "rule__DatamartAxis__Group__0");
+					put(grammarAccess.getDatamartAttributeBaseAccess().getGroup(), "rule__DatamartAttributeBase__Group__0");
+					put(grammarAccess.getDatamartAttributeAccess().getGroup(), "rule__DatamartAttribute__Group__0");
+					put(grammarAccess.getDatamartAttributeAccess().getGroup_2(), "rule__DatamartAttribute__Group_2__0");
+					put(grammarAccess.getDatamartAttributeAccess().getGroup_4(), "rule__DatamartAttribute__Group_4__0");
+					put(grammarAccess.getDatamartAttributeAccess().getGroup_5_0(), "rule__DatamartAttribute__Group_5_0__0");
+					put(grammarAccess.getDatamartAttributeAccess().getGroup_5_1(), "rule__DatamartAttribute__Group_5_1__0");
+					put(grammarAccess.getDatamartConditionAccess().getGroup(), "rule__DatamartCondition__Group__0");
+					put(grammarAccess.getDatamartOrderAccess().getGroup(), "rule__DatamartOrder__Group__0");
+					put(grammarAccess.getDatamartOrderAccess().getGroup_3(), "rule__DatamartOrder__Group_3__0");
+					put(grammarAccess.getDatamartDisjunctionAccess().getGroup(), "rule__DatamartDisjunction__Group__0");
+					put(grammarAccess.getDatamartDisjunctionAccess().getGroup_1(), "rule__DatamartDisjunction__Group_1__0");
+					put(grammarAccess.getDatamartDisjunctionAccess().getGroup_1_0(), "rule__DatamartDisjunction__Group_1_0__0");
+					put(grammarAccess.getDatamartConjunctionAccess().getGroup(), "rule__DatamartConjunction__Group__0");
+					put(grammarAccess.getDatamartConjunctionAccess().getGroup_1(), "rule__DatamartConjunction__Group_1__0");
+					put(grammarAccess.getDatamartConjunctionAccess().getGroup_1_0(), "rule__DatamartConjunction__Group_1_0__0");
+					put(grammarAccess.getDatamartConditionalExpressionAccess().getGroup(), "rule__DatamartConditionalExpression__Group__0");
+					put(grammarAccess.getDatamartConditionalExpressionAccess().getGroup_1(), "rule__DatamartConditionalExpression__Group_1__0");
+					put(grammarAccess.getDatamartConditionalExpressionAccess().getGroup_1_0(), "rule__DatamartConditionalExpression__Group_1_0__0");
+					put(grammarAccess.getDatamartOperandAccess().getGroup_1(), "rule__DatamartOperand__Group_1__0");
+					put(grammarAccess.getDatamartValueAccess().getGroup_2_0(), "rule__DatamartValue__Group_2_0__0");
+					put(grammarAccess.getDatamartDefineDerivedMeasureAccess().getGroup(), "rule__DatamartDefineDerivedMeasure__Group__0");
+					put(grammarAccess.getDatamartAdditionAccess().getGroup(), "rule__DatamartAddition__Group__0");
+					put(grammarAccess.getDatamartAdditionAccess().getGroup_1(), "rule__DatamartAddition__Group_1__0");
+					put(grammarAccess.getDatamartAdditionAccess().getGroup_1_0_0(), "rule__DatamartAddition__Group_1_0_0__0");
+					put(grammarAccess.getDatamartAdditionAccess().getGroup_1_0_1(), "rule__DatamartAddition__Group_1_0_1__0");
+					put(grammarAccess.getDatamartMultiplicationAccess().getGroup(), "rule__DatamartMultiplication__Group__0");
+					put(grammarAccess.getDatamartMultiplicationAccess().getGroup_1(), "rule__DatamartMultiplication__Group_1__0");
+					put(grammarAccess.getDatamartMultiplicationAccess().getGroup_1_0_0(), "rule__DatamartMultiplication__Group_1_0_0__0");
+					put(grammarAccess.getDatamartMultiplicationAccess().getGroup_1_0_1(), "rule__DatamartMultiplication__Group_1_0_1__0");
+					put(grammarAccess.getDatamartPrimaryAccess().getGroup_1(), "rule__DatamartPrimary__Group_1__0");
+					put(grammarAccess.getDatamartMemberTupleAccess().getGroup(), "rule__DatamartMemberTuple__Group__0");
+					put(grammarAccess.getDatamartMemberTupleAccess().getGroup_0(), "rule__DatamartMemberTuple__Group_0__0");
+					put(grammarAccess.getDatamartMemberTupleAccess().getGroup_2(), "rule__DatamartMemberTuple__Group_2__0");
+					put(grammarAccess.getDatamartParameterFunctionAccess().getGroup(), "rule__DatamartParameterFunction__Group__0");
+					put(grammarAccess.getDatamartSetParameterFunctionAccess().getGroup(), "rule__DatamartSetParameterFunction__Group__0");
+					put(grammarAccess.getDatamartSetAggregationFunctionAccess().getGroup(), "rule__DatamartSetAggregationFunction__Group__0");
+					put(grammarAccess.getDatamartSetTupleAccess().getGroup(), "rule__DatamartSetTuple__Group__0");
+					put(grammarAccess.getDatamartSetTupleAccess().getGroup_1(), "rule__DatamartSetTuple__Group_1__0");
+					put(grammarAccess.getDatamartAggregationAccess().getGroup(), "rule__DatamartAggregation__Group__0");
+					put(grammarAccess.getDatamartAggregationAccess().getGroup_3(), "rule__DatamartAggregation__Group_3__0");
+					put(grammarAccess.getDatamartSetAggregationAccess().getGroup(), "rule__DatamartSetAggregation__Group__0");
+					put(grammarAccess.getDatamartSetAggregationAccess().getGroup_3(), "rule__DatamartSetAggregation__Group_3__0");
+					put(grammarAccess.getDatamartSlicerAccess().getGroup(), "rule__DatamartSlicer__Group__0");
+					put(grammarAccess.getDatamartCubeAxisAccess().getGroup(), "rule__DatamartCubeAxis__Group__0");
+					put(grammarAccess.getDatamartDerivedMeasureAccess().getGroup(), "rule__DatamartDerivedMeasure__Group__0");
+					put(grammarAccess.getDatamartDerivedMeasureAccess().getGroup_2(), "rule__DatamartDerivedMeasure__Group_2__0");
+					put(grammarAccess.getDatamartMeasureAccess().getGroup(), "rule__DatamartMeasure__Group__0");
+					put(grammarAccess.getDatamartMeasureAccess().getGroup_2(), "rule__DatamartMeasure__Group_2__0");
+					put(grammarAccess.getDatamartHierarchyAccess().getGroup(), "rule__DatamartHierarchy__Group__0");
+					put(grammarAccess.getDatamartHierarchyAccess().getGroup_5(), "rule__DatamartHierarchy__Group_5__0");
+					put(grammarAccess.getDatamartHierarchyAccess().getGroup_6(), "rule__DatamartHierarchy__Group_6__0");
+					put(grammarAccess.getDatamartHierarchyAccess().getGroup_6_1(), "rule__DatamartHierarchy__Group_6_1__0");
+					put(grammarAccess.getDatamartHierarchyAccess().getGroup_6_2(), "rule__DatamartHierarchy__Group_6_2__0");
+					put(grammarAccess.getAttributeFillerDataAccess().getGroup(), "rule__AttributeFillerData__Group__0");
+					put(grammarAccess.getAttributeFillerDateFutureAccess().getGroup(), "rule__AttributeFillerDateFuture__Group__0");
+					put(grammarAccess.getAttributeFillerDatePastAccess().getGroup(), "rule__AttributeFillerDatePast__Group__0");
+					put(grammarAccess.getAttributeFillerDateRangeAccess().getGroup(), "rule__AttributeFillerDateRange__Group__0");
+					put(grammarAccess.getAttributeFillerSignedDoubleRangeAccess().getGroup(), "rule__AttributeFillerSignedDoubleRange__Group__0");
+					put(grammarAccess.getAttributeFillerSignedDoubleRangeAccess().getGroup_1(), "rule__AttributeFillerSignedDoubleRange__Group_1__0");
+					put(grammarAccess.getAttributeFillerSignedDoubleRangeAccess().getGroup_5(), "rule__AttributeFillerSignedDoubleRange__Group_5__0");
+					put(grammarAccess.getAttributeFillerSignedDoubleRandomAccess().getGroup(), "rule__AttributeFillerSignedDoubleRandom__Group__0");
+					put(grammarAccess.getAttributeFillerSignedIntegerRangeAccess().getGroup(), "rule__AttributeFillerSignedIntegerRange__Group__0");
+					put(grammarAccess.getAttributeFillerSignedIntegerRangeAccess().getGroup_2(), "rule__AttributeFillerSignedIntegerRange__Group_2__0");
+					put(grammarAccess.getAttributeFillerSignedIntegerRangeAccess().getGroup_3(), "rule__AttributeFillerSignedIntegerRange__Group_3__0");
+					put(grammarAccess.getAttributeFillerSignedIntegerRandomAccess().getGroup(), "rule__AttributeFillerSignedIntegerRandom__Group__0");
+					put(grammarAccess.getAttributeFillerTextRandomAccess().getGroup(), "rule__AttributeFillerTextRandom__Group__0");
+					put(grammarAccess.getAttributeFillerTextParagraphsAccess().getGroup(), "rule__AttributeFillerTextParagraphs__Group__0");
+					put(grammarAccess.getAttributeFillerTextSentencesAccess().getGroup(), "rule__AttributeFillerTextSentences__Group__0");
+					put(grammarAccess.getAttributeFillerTextWordsAccess().getGroup(), "rule__AttributeFillerTextWords__Group__0");
+					put(grammarAccess.getAttributeFillerUnsignedDoubleRangeAccess().getGroup(), "rule__AttributeFillerUnsignedDoubleRange__Group__0");
+					put(grammarAccess.getAttributeFillerUnsignedDoubleRangeAccess().getGroup_1(), "rule__AttributeFillerUnsignedDoubleRange__Group_1__0");
+					put(grammarAccess.getAttributeFillerUnsignedDoubleRangeAccess().getGroup_5(), "rule__AttributeFillerUnsignedDoubleRange__Group_5__0");
+					put(grammarAccess.getAttributeFillerUnsignedDoubleRandomAccess().getGroup(), "rule__AttributeFillerUnsignedDoubleRandom__Group__0");
+					put(grammarAccess.getAttributeFillerUnsignedIntegerRangeAccess().getGroup(), "rule__AttributeFillerUnsignedIntegerRange__Group__0");
+					put(grammarAccess.getAttributeFillerUnsignedIntegerRangeAccess().getGroup_2(), "rule__AttributeFillerUnsignedIntegerRange__Group_2__0");
+					put(grammarAccess.getAttributeFillerUnsignedIntegerRangeAccess().getGroup_3(), "rule__AttributeFillerUnsignedIntegerRange__Group_3__0");
+					put(grammarAccess.getAttributeFillerUnsignedIntegerRandomAccess().getGroup(), "rule__AttributeFillerUnsignedIntegerRandom__Group__0");
+					put(grammarAccess.getSignedNumberAccess().getGroup(), "rule__SignedNumber__Group__0");
+					put(grammarAccess.getUnsignedNumberAccess().getGroup(), "rule__UnsignedNumber__Group__0");
+					put(grammarAccess.getUnsignedNumberAccess().getGroup_1(), "rule__UnsignedNumber__Group_1__0");
+					put(grammarAccess.getSINTAccess().getGroup(), "rule__SINT__Group__0");
+					put(grammarAccess.getXImportDeclarationAccess().getGroup(), "rule__XImportDeclaration__Group__0");
+					put(grammarAccess.getXImportDeclarationAccess().getGroup_2_0(), "rule__XImportDeclaration__Group_2_0__0");
+					put(grammarAccess.getXImportDeclarationAccess().getGroup_2_3(), "rule__XImportDeclaration__Group_2_3__0");
+					put(grammarAccess.getXAnnotationAccess().getGroup(), "rule__XAnnotation__Group__0");
+					put(grammarAccess.getXAnnotationAccess().getGroup_3(), "rule__XAnnotation__Group_3__0");
+					put(grammarAccess.getXAnnotationAccess().getGroup_3_1_0(), "rule__XAnnotation__Group_3_1_0__0");
+					put(grammarAccess.getXAnnotationAccess().getGroup_3_1_0_1(), "rule__XAnnotation__Group_3_1_0_1__0");
+					put(grammarAccess.getXAnnotationElementValuePairAccess().getGroup(), "rule__XAnnotationElementValuePair__Group__0");
+					put(grammarAccess.getXAnnotationElementValuePairAccess().getGroup_0(), "rule__XAnnotationElementValuePair__Group_0__0");
+					put(grammarAccess.getXAnnotationElementValuePairAccess().getGroup_0_0(), "rule__XAnnotationElementValuePair__Group_0_0__0");
+					put(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0(), "rule__XAnnotationElementValueOrCommaList__Group_0__0");
+					put(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_0(), "rule__XAnnotationElementValueOrCommaList__Group_0_0__0");
+					put(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_0_0(), "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0");
+					put(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_1(), "rule__XAnnotationElementValueOrCommaList__Group_0_1__0");
+					put(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_1_1(), "rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0");
+					put(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1(), "rule__XAnnotationElementValueOrCommaList__Group_1__0");
+					put(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1_1(), "rule__XAnnotationElementValueOrCommaList__Group_1_1__0");
+					put(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1_1_1(), "rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0");
+					put(grammarAccess.getXAnnotationElementValueAccess().getGroup_0(), "rule__XAnnotationElementValue__Group_0__0");
+					put(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_0(), "rule__XAnnotationElementValue__Group_0_0__0");
+					put(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_0_0(), "rule__XAnnotationElementValue__Group_0_0_0__0");
+					put(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_1(), "rule__XAnnotationElementValue__Group_0_1__0");
+					put(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_1_1(), "rule__XAnnotationElementValue__Group_0_1_1__0");
+					put(grammarAccess.getXAssignmentAccess().getGroup_0(), "rule__XAssignment__Group_0__0");
+					put(grammarAccess.getXAssignmentAccess().getGroup_1(), "rule__XAssignment__Group_1__0");
+					put(grammarAccess.getXAssignmentAccess().getGroup_1_1(), "rule__XAssignment__Group_1_1__0");
+					put(grammarAccess.getXAssignmentAccess().getGroup_1_1_0(), "rule__XAssignment__Group_1_1_0__0");
+					put(grammarAccess.getXAssignmentAccess().getGroup_1_1_0_0(), "rule__XAssignment__Group_1_1_0_0__0");
+					put(grammarAccess.getOpMultiAssignAccess().getGroup_5(), "rule__OpMultiAssign__Group_5__0");
+					put(grammarAccess.getOpMultiAssignAccess().getGroup_6(), "rule__OpMultiAssign__Group_6__0");
+					put(grammarAccess.getXOrExpressionAccess().getGroup(), "rule__XOrExpression__Group__0");
+					put(grammarAccess.getXOrExpressionAccess().getGroup_1(), "rule__XOrExpression__Group_1__0");
+					put(grammarAccess.getXOrExpressionAccess().getGroup_1_0(), "rule__XOrExpression__Group_1_0__0");
+					put(grammarAccess.getXOrExpressionAccess().getGroup_1_0_0(), "rule__XOrExpression__Group_1_0_0__0");
+					put(grammarAccess.getXAndExpressionAccess().getGroup(), "rule__XAndExpression__Group__0");
+					put(grammarAccess.getXAndExpressionAccess().getGroup_1(), "rule__XAndExpression__Group_1__0");
+					put(grammarAccess.getXAndExpressionAccess().getGroup_1_0(), "rule__XAndExpression__Group_1_0__0");
+					put(grammarAccess.getXAndExpressionAccess().getGroup_1_0_0(), "rule__XAndExpression__Group_1_0_0__0");
+					put(grammarAccess.getXEqualityExpressionAccess().getGroup(), "rule__XEqualityExpression__Group__0");
+					put(grammarAccess.getXEqualityExpressionAccess().getGroup_1(), "rule__XEqualityExpression__Group_1__0");
+					put(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0(), "rule__XEqualityExpression__Group_1_0__0");
+					put(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0_0(), "rule__XEqualityExpression__Group_1_0_0__0");
+					put(grammarAccess.getXRelationalExpressionAccess().getGroup(), "rule__XRelationalExpression__Group__0");
+					put(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0(), "rule__XRelationalExpression__Group_1_0__0");
+					put(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0_0(), "rule__XRelationalExpression__Group_1_0_0__0");
+					put(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0_0_0(), "rule__XRelationalExpression__Group_1_0_0_0__0");
+					put(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1(), "rule__XRelationalExpression__Group_1_1__0");
+					put(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1_0(), "rule__XRelationalExpression__Group_1_1_0__0");
+					put(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1_0_0(), "rule__XRelationalExpression__Group_1_1_0_0__0");
+					put(grammarAccess.getOpCompareAccess().getGroup_1(), "rule__OpCompare__Group_1__0");
+					put(grammarAccess.getXOtherOperatorExpressionAccess().getGroup(), "rule__XOtherOperatorExpression__Group__0");
+					put(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1(), "rule__XOtherOperatorExpression__Group_1__0");
+					put(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1_0(), "rule__XOtherOperatorExpression__Group_1_0__0");
+					put(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1_0_0(), "rule__XOtherOperatorExpression__Group_1_0_0__0");
+					put(grammarAccess.getOpOtherAccess().getGroup_2(), "rule__OpOther__Group_2__0");
+					put(grammarAccess.getOpOtherAccess().getGroup_5(), "rule__OpOther__Group_5__0");
+					put(grammarAccess.getOpOtherAccess().getGroup_5_1_0(), "rule__OpOther__Group_5_1_0__0");
+					put(grammarAccess.getOpOtherAccess().getGroup_5_1_0_0(), "rule__OpOther__Group_5_1_0_0__0");
+					put(grammarAccess.getOpOtherAccess().getGroup_6(), "rule__OpOther__Group_6__0");
+					put(grammarAccess.getOpOtherAccess().getGroup_6_1_0(), "rule__OpOther__Group_6_1_0__0");
+					put(grammarAccess.getOpOtherAccess().getGroup_6_1_0_0(), "rule__OpOther__Group_6_1_0_0__0");
+					put(grammarAccess.getXAdditiveExpressionAccess().getGroup(), "rule__XAdditiveExpression__Group__0");
+					put(grammarAccess.getXAdditiveExpressionAccess().getGroup_1(), "rule__XAdditiveExpression__Group_1__0");
+					put(grammarAccess.getXAdditiveExpressionAccess().getGroup_1_0(), "rule__XAdditiveExpression__Group_1_0__0");
+					put(grammarAccess.getXAdditiveExpressionAccess().getGroup_1_0_0(), "rule__XAdditiveExpression__Group_1_0_0__0");
+					put(grammarAccess.getXMultiplicativeExpressionAccess().getGroup(), "rule__XMultiplicativeExpression__Group__0");
+					put(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1(), "rule__XMultiplicativeExpression__Group_1__0");
+					put(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1_0(), "rule__XMultiplicativeExpression__Group_1_0__0");
+					put(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1_0_0(), "rule__XMultiplicativeExpression__Group_1_0_0__0");
+					put(grammarAccess.getXUnaryOperationAccess().getGroup_0(), "rule__XUnaryOperation__Group_0__0");
+					put(grammarAccess.getXCastedExpressionAccess().getGroup(), "rule__XCastedExpression__Group__0");
+					put(grammarAccess.getXCastedExpressionAccess().getGroup_1(), "rule__XCastedExpression__Group_1__0");
+					put(grammarAccess.getXCastedExpressionAccess().getGroup_1_0(), "rule__XCastedExpression__Group_1_0__0");
+					put(grammarAccess.getXCastedExpressionAccess().getGroup_1_0_0(), "rule__XCastedExpression__Group_1_0_0__0");
+					put(grammarAccess.getXPostfixOperationAccess().getGroup(), "rule__XPostfixOperation__Group__0");
+					put(grammarAccess.getXPostfixOperationAccess().getGroup_1(), "rule__XPostfixOperation__Group_1__0");
+					put(grammarAccess.getXPostfixOperationAccess().getGroup_1_0(), "rule__XPostfixOperation__Group_1_0__0");
+					put(grammarAccess.getXMemberFeatureCallAccess().getGroup(), "rule__XMemberFeatureCall__Group__0");
+					put(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0(), "rule__XMemberFeatureCall__Group_1_0__0");
+					put(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0_0(), "rule__XMemberFeatureCall__Group_1_0_0__0");
+					put(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0_0_0(), "rule__XMemberFeatureCall__Group_1_0_0_0__0");
+					put(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1(), "rule__XMemberFeatureCall__Group_1_1__0");
+					put(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_0(), "rule__XMemberFeatureCall__Group_1_1_0__0");
+					put(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_0_0(), "rule__XMemberFeatureCall__Group_1_1_0_0__0");
+					put(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_1(), "rule__XMemberFeatureCall__Group_1_1_1__0");
+					put(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_1_2(), "rule__XMemberFeatureCall__Group_1_1_1_2__0");
+					put(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3(), "rule__XMemberFeatureCall__Group_1_1_3__0");
+					put(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3_1_1(), "rule__XMemberFeatureCall__Group_1_1_3_1_1__0");
+					put(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3_1_1_1(), "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0");
+					put(grammarAccess.getXSetLiteralAccess().getGroup(), "rule__XSetLiteral__Group__0");
+					put(grammarAccess.getXSetLiteralAccess().getGroup_3(), "rule__XSetLiteral__Group_3__0");
+					put(grammarAccess.getXSetLiteralAccess().getGroup_3_1(), "rule__XSetLiteral__Group_3_1__0");
+					put(grammarAccess.getXListLiteralAccess().getGroup(), "rule__XListLiteral__Group__0");
+					put(grammarAccess.getXListLiteralAccess().getGroup_3(), "rule__XListLiteral__Group_3__0");
+					put(grammarAccess.getXListLiteralAccess().getGroup_3_1(), "rule__XListLiteral__Group_3_1__0");
+					put(grammarAccess.getXClosureAccess().getGroup(), "rule__XClosure__Group__0");
+					put(grammarAccess.getXClosureAccess().getGroup_0(), "rule__XClosure__Group_0__0");
+					put(grammarAccess.getXClosureAccess().getGroup_0_0(), "rule__XClosure__Group_0_0__0");
+					put(grammarAccess.getXClosureAccess().getGroup_1(), "rule__XClosure__Group_1__0");
+					put(grammarAccess.getXClosureAccess().getGroup_1_0(), "rule__XClosure__Group_1_0__0");
+					put(grammarAccess.getXClosureAccess().getGroup_1_0_0(), "rule__XClosure__Group_1_0_0__0");
+					put(grammarAccess.getXClosureAccess().getGroup_1_0_0_1(), "rule__XClosure__Group_1_0_0_1__0");
+					put(grammarAccess.getXExpressionInClosureAccess().getGroup(), "rule__XExpressionInClosure__Group__0");
+					put(grammarAccess.getXExpressionInClosureAccess().getGroup_1(), "rule__XExpressionInClosure__Group_1__0");
+					put(grammarAccess.getXShortClosureAccess().getGroup(), "rule__XShortClosure__Group__0");
+					put(grammarAccess.getXShortClosureAccess().getGroup_0(), "rule__XShortClosure__Group_0__0");
+					put(grammarAccess.getXShortClosureAccess().getGroup_0_0(), "rule__XShortClosure__Group_0_0__0");
+					put(grammarAccess.getXShortClosureAccess().getGroup_0_0_1(), "rule__XShortClosure__Group_0_0_1__0");
+					put(grammarAccess.getXShortClosureAccess().getGroup_0_0_1_1(), "rule__XShortClosure__Group_0_0_1_1__0");
+					put(grammarAccess.getXParenthesizedExpressionAccess().getGroup(), "rule__XParenthesizedExpression__Group__0");
+					put(grammarAccess.getXIfExpressionAccess().getGroup(), "rule__XIfExpression__Group__0");
+					put(grammarAccess.getXIfExpressionAccess().getGroup_6(), "rule__XIfExpression__Group_6__0");
+					put(grammarAccess.getXSwitchExpressionAccess().getGroup(), "rule__XSwitchExpression__Group__0");
+					put(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0(), "rule__XSwitchExpression__Group_2_0__0");
+					put(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0_0(), "rule__XSwitchExpression__Group_2_0_0__0");
+					put(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0_0_0(), "rule__XSwitchExpression__Group_2_0_0_0__0");
+					put(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1(), "rule__XSwitchExpression__Group_2_1__0");
+					put(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1_0(), "rule__XSwitchExpression__Group_2_1_0__0");
+					put(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1_0_0(), "rule__XSwitchExpression__Group_2_1_0_0__0");
+					put(grammarAccess.getXSwitchExpressionAccess().getGroup_5(), "rule__XSwitchExpression__Group_5__0");
+					put(grammarAccess.getXCasePartAccess().getGroup(), "rule__XCasePart__Group__0");
+					put(grammarAccess.getXCasePartAccess().getGroup_2(), "rule__XCasePart__Group_2__0");
+					put(grammarAccess.getXCasePartAccess().getGroup_3_0(), "rule__XCasePart__Group_3_0__0");
+					put(grammarAccess.getXForLoopExpressionAccess().getGroup(), "rule__XForLoopExpression__Group__0");
+					put(grammarAccess.getXForLoopExpressionAccess().getGroup_0(), "rule__XForLoopExpression__Group_0__0");
+					put(grammarAccess.getXForLoopExpressionAccess().getGroup_0_0(), "rule__XForLoopExpression__Group_0_0__0");
+					put(grammarAccess.getXBasicForLoopExpressionAccess().getGroup(), "rule__XBasicForLoopExpression__Group__0");
+					put(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_3(), "rule__XBasicForLoopExpression__Group_3__0");
+					put(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_3_1(), "rule__XBasicForLoopExpression__Group_3_1__0");
+					put(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_7(), "rule__XBasicForLoopExpression__Group_7__0");
+					put(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_7_1(), "rule__XBasicForLoopExpression__Group_7_1__0");
+					put(grammarAccess.getXWhileExpressionAccess().getGroup(), "rule__XWhileExpression__Group__0");
+					put(grammarAccess.getXDoWhileExpressionAccess().getGroup(), "rule__XDoWhileExpression__Group__0");
+					put(grammarAccess.getXBlockExpressionAccess().getGroup(), "rule__XBlockExpression__Group__0");
+					put(grammarAccess.getXBlockExpressionAccess().getGroup_2(), "rule__XBlockExpression__Group_2__0");
+					put(grammarAccess.getXVariableDeclarationAccess().getGroup(), "rule__XVariableDeclaration__Group__0");
+					put(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0(), "rule__XVariableDeclaration__Group_2_0__0");
+					put(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0_0(), "rule__XVariableDeclaration__Group_2_0_0__0");
+					put(grammarAccess.getXVariableDeclarationAccess().getGroup_3(), "rule__XVariableDeclaration__Group_3__0");
+					put(grammarAccess.getJvmFormalParameterAccess().getGroup(), "rule__JvmFormalParameter__Group__0");
+					put(grammarAccess.getFullJvmFormalParameterAccess().getGroup(), "rule__FullJvmFormalParameter__Group__0");
+					put(grammarAccess.getXFeatureCallAccess().getGroup(), "rule__XFeatureCall__Group__0");
+					put(grammarAccess.getXFeatureCallAccess().getGroup_1(), "rule__XFeatureCall__Group_1__0");
+					put(grammarAccess.getXFeatureCallAccess().getGroup_1_2(), "rule__XFeatureCall__Group_1_2__0");
+					put(grammarAccess.getXFeatureCallAccess().getGroup_3(), "rule__XFeatureCall__Group_3__0");
+					put(grammarAccess.getXFeatureCallAccess().getGroup_3_1_1(), "rule__XFeatureCall__Group_3_1_1__0");
+					put(grammarAccess.getXFeatureCallAccess().getGroup_3_1_1_1(), "rule__XFeatureCall__Group_3_1_1_1__0");
+					put(grammarAccess.getXConstructorCallAccess().getGroup(), "rule__XConstructorCall__Group__0");
+					put(grammarAccess.getXConstructorCallAccess().getGroup_3(), "rule__XConstructorCall__Group_3__0");
+					put(grammarAccess.getXConstructorCallAccess().getGroup_3_2(), "rule__XConstructorCall__Group_3_2__0");
+					put(grammarAccess.getXConstructorCallAccess().getGroup_4(), "rule__XConstructorCall__Group_4__0");
+					put(grammarAccess.getXConstructorCallAccess().getGroup_4_1_1(), "rule__XConstructorCall__Group_4_1_1__0");
+					put(grammarAccess.getXConstructorCallAccess().getGroup_4_1_1_1(), "rule__XConstructorCall__Group_4_1_1_1__0");
+					put(grammarAccess.getXBooleanLiteralAccess().getGroup(), "rule__XBooleanLiteral__Group__0");
+					put(grammarAccess.getXNullLiteralAccess().getGroup(), "rule__XNullLiteral__Group__0");
+					put(grammarAccess.getXNumberLiteralAccess().getGroup(), "rule__XNumberLiteral__Group__0");
+					put(grammarAccess.getXStringLiteralAccess().getGroup(), "rule__XStringLiteral__Group__0");
+					put(grammarAccess.getXTypeLiteralAccess().getGroup(), "rule__XTypeLiteral__Group__0");
+					put(grammarAccess.getXThrowExpressionAccess().getGroup(), "rule__XThrowExpression__Group__0");
+					put(grammarAccess.getXReturnExpressionAccess().getGroup(), "rule__XReturnExpression__Group__0");
+					put(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup(), "rule__XTryCatchFinallyExpression__Group__0");
+					put(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_0(), "rule__XTryCatchFinallyExpression__Group_3_0__0");
+					put(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_0_1(), "rule__XTryCatchFinallyExpression__Group_3_0_1__0");
+					put(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_1(), "rule__XTryCatchFinallyExpression__Group_3_1__0");
+					put(grammarAccess.getXSynchronizedExpressionAccess().getGroup(), "rule__XSynchronizedExpression__Group__0");
+					put(grammarAccess.getXSynchronizedExpressionAccess().getGroup_0(), "rule__XSynchronizedExpression__Group_0__0");
+					put(grammarAccess.getXSynchronizedExpressionAccess().getGroup_0_0(), "rule__XSynchronizedExpression__Group_0_0__0");
+					put(grammarAccess.getXCatchClauseAccess().getGroup(), "rule__XCatchClause__Group__0");
+					put(grammarAccess.getQualifiedNameAccess().getGroup(), "rule__QualifiedName__Group__0");
+					put(grammarAccess.getQualifiedNameAccess().getGroup_1(), "rule__QualifiedName__Group_1__0");
+					put(grammarAccess.getNumberAccess().getGroup_1(), "rule__Number__Group_1__0");
+					put(grammarAccess.getNumberAccess().getGroup_1_1(), "rule__Number__Group_1_1__0");
+					put(grammarAccess.getStaticQualifierAccess().getGroup(), "rule__StaticQualifier__Group__0");
+					put(grammarAccess.getJvmTypeReferenceAccess().getGroup_0(), "rule__JvmTypeReference__Group_0__0");
+					put(grammarAccess.getJvmTypeReferenceAccess().getGroup_0_1(), "rule__JvmTypeReference__Group_0_1__0");
+					put(grammarAccess.getJvmTypeReferenceAccess().getGroup_0_1_0(), "rule__JvmTypeReference__Group_0_1_0__0");
+					put(grammarAccess.getArrayBracketsAccess().getGroup(), "rule__ArrayBrackets__Group__0");
+					put(grammarAccess.getXFunctionTypeRefAccess().getGroup(), "rule__XFunctionTypeRef__Group__0");
+					put(grammarAccess.getXFunctionTypeRefAccess().getGroup_0(), "rule__XFunctionTypeRef__Group_0__0");
+					put(grammarAccess.getXFunctionTypeRefAccess().getGroup_0_1(), "rule__XFunctionTypeRef__Group_0_1__0");
+					put(grammarAccess.getXFunctionTypeRefAccess().getGroup_0_1_1(), "rule__XFunctionTypeRef__Group_0_1_1__0");
+					put(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup(), "rule__JvmParameterizedTypeReference__Group__0");
+					put(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1(), "rule__JvmParameterizedTypeReference__Group_1__0");
+					put(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_2(), "rule__JvmParameterizedTypeReference__Group_1_2__0");
+					put(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4(), "rule__JvmParameterizedTypeReference__Group_1_4__0");
+					put(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_0(), "rule__JvmParameterizedTypeReference__Group_1_4_0__0");
+					put(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_0_0(), "rule__JvmParameterizedTypeReference__Group_1_4_0_0__0");
+					put(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_2(), "rule__JvmParameterizedTypeReference__Group_1_4_2__0");
+					put(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_2_2(), "rule__JvmParameterizedTypeReference__Group_1_4_2_2__0");
+					put(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup(), "rule__JvmWildcardTypeReference__Group__0");
+					put(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup_2_0(), "rule__JvmWildcardTypeReference__Group_2_0__0");
+					put(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup_2_1(), "rule__JvmWildcardTypeReference__Group_2_1__0");
+					put(grammarAccess.getJvmUpperBoundAccess().getGroup(), "rule__JvmUpperBound__Group__0");
+					put(grammarAccess.getJvmUpperBoundAndedAccess().getGroup(), "rule__JvmUpperBoundAnded__Group__0");
+					put(grammarAccess.getJvmLowerBoundAccess().getGroup(), "rule__JvmLowerBound__Group__0");
+					put(grammarAccess.getJvmLowerBoundAndedAccess().getGroup(), "rule__JvmLowerBoundAnded__Group__0");
+					put(grammarAccess.getJvmTypeParameterAccess().getGroup(), "rule__JvmTypeParameter__Group__0");
+					put(grammarAccess.getJvmTypeParameterAccess().getGroup_1(), "rule__JvmTypeParameter__Group_1__0");
+					put(grammarAccess.getQualifiedNameWithWildcardAccess().getGroup(), "rule__QualifiedNameWithWildcard__Group__0");
+					put(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup(), "rule__QualifiedNameInStaticImport__Group__0");
+					put(grammarAccess.getDatamartModelAccess().getImportSectionAssignment_0(), "rule__DatamartModel__ImportSectionAssignment_0");
+					put(grammarAccess.getDatamartModelAccess().getPackagesAssignment_1(), "rule__DatamartModel__PackagesAssignment_1");
+					put(grammarAccess.getDatamartPackageAccess().getNameAssignment_2(), "rule__DatamartPackage__NameAssignment_2");
+					put(grammarAccess.getDatamartPackageAccess().getDefinitionsAssignment_3_1(), "rule__DatamartPackage__DefinitionsAssignment_3_1");
+					put(grammarAccess.getDatamartDefinitionAccess().getNameAssignment_1(), "rule__DatamartDefinition__NameAssignment_1");
+					put(grammarAccess.getDatamartDefinitionAccess().getDescriptionAssignment_2_0(), "rule__DatamartDefinition__DescriptionAssignment_2_0");
+					put(grammarAccess.getDatamartDefinitionAccess().getDescriptionValueAssignment_2_1(), "rule__DatamartDefinition__DescriptionValueAssignment_2_1");
+					put(grammarAccess.getDatamartDefinitionAccess().getRolesAssignment_3_2(), "rule__DatamartDefinition__RolesAssignment_3_2");
+					put(grammarAccess.getDatamartDefinitionAccess().getSourceAssignment_5(), "rule__DatamartDefinition__SourceAssignment_5");
+					put(grammarAccess.getDatamartRoleAccess().getAssignedRoleAssignment_1(), "rule__DatamartRole__AssignedRoleAssignment_1");
+					put(grammarAccess.getDatamartTaskAccess().getTaskQueryAssignment_1(), "rule__DatamartTask__TaskQueryAssignment_1");
+					put(grammarAccess.getDatamartTaskAccess().getColumnsAssignment_2_2(), "rule__DatamartTask__ColumnsAssignment_2_2");
+					put(grammarAccess.getDatamartTaskAccess().getConditionsAssignment_3_2(), "rule__DatamartTask__ConditionsAssignment_3_2");
+					put(grammarAccess.getDatamartColumnAccess().getColumnRefAssignment_1(), "rule__DatamartColumn__ColumnRefAssignment_1");
+					put(grammarAccess.getDatamartTaskFilterAccess().getFilterRefAssignment_1(), "rule__DatamartTaskFilter__FilterRefAssignment_1");
+					put(grammarAccess.getDatamartCubeAccess().getCubeRefAssignment_1(), "rule__DatamartCube__CubeRefAssignment_1");
+					put(grammarAccess.getDatamartCubeAccess().getNonEmptyAssignment_2(), "rule__DatamartCube__NonEmptyAssignment_2");
+					put(grammarAccess.getDatamartCubeAccess().getAxisslicerAssignment_4(), "rule__DatamartCube__AxisslicerAssignment_4");
+					put(grammarAccess.getDatamartReferenceAccess().getRefAssignment_1(), "rule__DatamartReference__RefAssignment_1");
+					put(grammarAccess.getDatamartEntityAccess().getEntityRefAssignment_1(), "rule__DatamartEntity__EntityRefAssignment_1");
+					put(grammarAccess.getDatamartEntityAccess().getTrackingAssignment_2(), "rule__DatamartEntity__TrackingAssignment_2");
+					put(grammarAccess.getDatamartEntityAccess().getNavigationsAssignment_3_1_2(), "rule__DatamartEntity__NavigationsAssignment_3_1_2");
+					put(grammarAccess.getDatamartEntityAccess().getAttributesAssignment_3_2_2(), "rule__DatamartEntity__AttributesAssignment_3_2_2");
+					put(grammarAccess.getDatamartEntityAccess().getConditionsAssignment_3_3_2(), "rule__DatamartEntity__ConditionsAssignment_3_3_2");
+					put(grammarAccess.getDatamartEntityAccess().getOrderingAssignment_3_4_2(), "rule__DatamartEntity__OrderingAssignment_3_4_2");
+					put(grammarAccess.getDatamartEntityAccess().getFillerMinCountRowsAssignment_3_5_1(), "rule__DatamartEntity__FillerMinCountRowsAssignment_3_5_1");
+					put(grammarAccess.getDatamartEntityAccess().getFillerMaxCountRowsAssignment_3_5_3(), "rule__DatamartEntity__FillerMaxCountRowsAssignment_3_5_3");
+					put(grammarAccess.getDatamartEntityAccess().getFillerDatasAssignment_3_5_5(), "rule__DatamartEntity__FillerDatasAssignment_3_5_5");
+					put(grammarAccess.getDatamartOwnerAccess().getJoinRefAssignment_1(), "rule__DatamartOwner__JoinRefAssignment_1");
+					put(grammarAccess.getDatamartOwnerAccess().getDatamartEntityAssignment_3(), "rule__DatamartOwner__DatamartEntityAssignment_3");
+					put(grammarAccess.getDatamartMemberAccess().getJoinRefAssignment_1(), "rule__DatamartMember__JoinRefAssignment_1");
+					put(grammarAccess.getDatamartMemberAccess().getDatamartEntityAssignment_3(), "rule__DatamartMember__DatamartEntityAssignment_3");
+					put(grammarAccess.getDatamartAxisAccess().getNameAssignment_1(), "rule__DatamartAxis__NameAssignment_1");
+					put(grammarAccess.getDatamartAttributeBaseAccess().getAttributeRefAssignment_1(), "rule__DatamartAttributeBase__AttributeRefAssignment_1");
+					put(grammarAccess.getDatamartAttributeAccess().getAttributeRefAssignment_1(), "rule__DatamartAttribute__AttributeRefAssignment_1");
+					put(grammarAccess.getDatamartAttributeAccess().getAliasedAssignment_2_0(), "rule__DatamartAttribute__AliasedAssignment_2_0");
+					put(grammarAccess.getDatamartAttributeAccess().getAliasNameAssignment_2_1(), "rule__DatamartAttribute__AliasNameAssignment_2_1");
+					put(grammarAccess.getDatamartAttributeAccess().getAxisAssignment_3(), "rule__DatamartAttribute__AxisAssignment_3");
+					put(grammarAccess.getDatamartAttributeAccess().getHasColumnWeightAssignment_4_0(), "rule__DatamartAttribute__HasColumnWeightAssignment_4_0");
+					put(grammarAccess.getDatamartAttributeAccess().getColumnWeightAssignment_4_1(), "rule__DatamartAttribute__ColumnWeightAssignment_4_1");
+					put(grammarAccess.getDatamartAttributeAccess().getAggregatedAssignment_5_0_0(), "rule__DatamartAttribute__AggregatedAssignment_5_0_0");
+					put(grammarAccess.getDatamartAttributeAccess().getAggregateAssignment_5_0_1(), "rule__DatamartAttribute__AggregateAssignment_5_0_1");
+					put(grammarAccess.getDatamartAttributeAccess().getScaledAssignment_5_1_0(), "rule__DatamartAttribute__ScaledAssignment_5_1_0");
+					put(grammarAccess.getDatamartAttributeAccess().getScaleAssignment_5_1_1(), "rule__DatamartAttribute__ScaleAssignment_5_1_1");
+					put(grammarAccess.getDatamartConditionAccess().getConditionAssignment_1(), "rule__DatamartCondition__ConditionAssignment_1");
+					put(grammarAccess.getDatamartOrderAccess().getOrderByAssignment_1(), "rule__DatamartOrder__OrderByAssignment_1");
+					put(grammarAccess.getDatamartOrderAccess().getOrderHowAssignment_2(), "rule__DatamartOrder__OrderHowAssignment_2");
+					put(grammarAccess.getDatamartOrderAccess().getHasColumnWeightAssignment_3_0(), "rule__DatamartOrder__HasColumnWeightAssignment_3_0");
+					put(grammarAccess.getDatamartOrderAccess().getColumnWeightAssignment_3_1(), "rule__DatamartOrder__ColumnWeightAssignment_3_1");
+					put(grammarAccess.getDatamartDisjunctionAccess().getRightAssignment_1_1(), "rule__DatamartDisjunction__RightAssignment_1_1");
+					put(grammarAccess.getDatamartConjunctionAccess().getRightAssignment_1_1(), "rule__DatamartConjunction__RightAssignment_1_1");
+					put(grammarAccess.getDatamartConditionalExpressionAccess().getOperatorAssignment_1_0_1(), "rule__DatamartConditionalExpression__OperatorAssignment_1_0_1");
+					put(grammarAccess.getDatamartConditionalExpressionAccess().getRightAssignment_1_1(), "rule__DatamartConditionalExpression__RightAssignment_1_1");
+					put(grammarAccess.getDatamartValueAccess().getNumberValueAssignment_0(), "rule__DatamartValue__NumberValueAssignment_0");
+					put(grammarAccess.getDatamartValueAccess().getStringValueAssignment_1(), "rule__DatamartValue__StringValueAssignment_1");
+					put(grammarAccess.getDatamartValueAccess().getFilteredAssignment_2_0_0(), "rule__DatamartValue__FilteredAssignment_2_0_0");
+					put(grammarAccess.getDatamartValueAccess().getOptionalAssignment_2_0_1(), "rule__DatamartValue__OptionalAssignment_2_0_1");
+					put(grammarAccess.getDatamartValueAccess().getSelectedAssignment_2_1(), "rule__DatamartValue__SelectedAssignment_2_1");
+					put(grammarAccess.getDatamartValueAccess().getRangedAssignment_2_2(), "rule__DatamartValue__RangedAssignment_2_2");
+					put(grammarAccess.getDatamartDefineDerivedMeasureAccess().getNameAssignment_1(), "rule__DatamartDefineDerivedMeasure__NameAssignment_1");
+					put(grammarAccess.getDatamartDefineDerivedMeasureAccess().getDerivedElementAssignment_3(), "rule__DatamartDefineDerivedMeasure__DerivedElementAssignment_3");
+					put(grammarAccess.getDatamartAdditionAccess().getRightAssignment_1_1(), "rule__DatamartAddition__RightAssignment_1_1");
+					put(grammarAccess.getDatamartMultiplicationAccess().getRightAssignment_1_1(), "rule__DatamartMultiplication__RightAssignment_1_1");
+					put(grammarAccess.getDatamartNumberOrElementAccess().getValueAssignment_0(), "rule__DatamartNumberOrElement__ValueAssignment_0");
+					put(grammarAccess.getDatamartMemberTupleAccess().getFunctionAssignment_0_0_0(), "rule__DatamartMemberTuple__FunctionAssignment_0_0_0");
+					put(grammarAccess.getDatamartMemberTupleAccess().getFunctionAssignment_0_0_1(), "rule__DatamartMemberTuple__FunctionAssignment_0_0_1");
+					put(grammarAccess.getDatamartMemberTupleAccess().getHierarchyAssignment_1(), "rule__DatamartMemberTuple__HierarchyAssignment_1");
+					put(grammarAccess.getDatamartMemberTupleAccess().getRightAssignment_2_2(), "rule__DatamartMemberTuple__RightAssignment_2_2");
+					put(grammarAccess.getDatamartFunctionAccess().getFunctionAssignment(), "rule__DatamartFunction__FunctionAssignment");
+					put(grammarAccess.getDatamartParameterFunctionAccess().getFunctionAssignment_0(), "rule__DatamartParameterFunction__FunctionAssignment_0");
+					put(grammarAccess.getDatamartParameterFunctionAccess().getParameterAssignment_2(), "rule__DatamartParameterFunction__ParameterAssignment_2");
+					put(grammarAccess.getDatamartFunctionIntParameterAccess().getValueAssignment(), "rule__DatamartFunctionIntParameter__ValueAssignment");
+					put(grammarAccess.getDatamartSetFunctionAccess().getSetFunctionAssignment(), "rule__DatamartSetFunction__SetFunctionAssignment");
+					put(grammarAccess.getDatamartSetParameterFunctionAccess().getSetFunctionAssignment_0(), "rule__DatamartSetParameterFunction__SetFunctionAssignment_0");
+					put(grammarAccess.getDatamartSetParameterFunctionAccess().getParameterAssignment_2(), "rule__DatamartSetParameterFunction__ParameterAssignment_2");
+					put(grammarAccess.getDatamartSetAggregationFunctionAccess().getAggregationAssignment_0(), "rule__DatamartSetAggregationFunction__AggregationAssignment_0");
+					put(grammarAccess.getDatamartSetAggregationFunctionAccess().getParameterAssignment_2(), "rule__DatamartSetAggregationFunction__ParameterAssignment_2");
+					put(grammarAccess.getDatamartSetTupleAccess().getSetFunctionAssignment_0_0(), "rule__DatamartSetTuple__SetFunctionAssignment_0_0");
+					put(grammarAccess.getDatamartSetTupleAccess().getSetFunctionAssignment_0_1(), "rule__DatamartSetTuple__SetFunctionAssignment_0_1");
+					put(grammarAccess.getDatamartSetTupleAccess().getRightAssignment_1_2(), "rule__DatamartSetTuple__RightAssignment_1_2");
+					put(grammarAccess.getDatamartAggregationFunctionAccess().getAggregationAssignment(), "rule__DatamartAggregationFunction__AggregationAssignment");
+					put(grammarAccess.getDatamartAggregationAccess().getAggregationAssignment_0(), "rule__DatamartAggregation__AggregationAssignment_0");
+					put(grammarAccess.getDatamartAggregationAccess().getSetAssignment_2_0(), "rule__DatamartAggregation__SetAssignment_2_0");
+					put(grammarAccess.getDatamartAggregationAccess().getSetAssignment_2_1(), "rule__DatamartAggregation__SetAssignment_2_1");
+					put(grammarAccess.getDatamartAggregationAccess().getRightAssignment_3_2(), "rule__DatamartAggregation__RightAssignment_3_2");
+					put(grammarAccess.getDatamartSetAggregationAccess().getAggregationAssignment_0(), "rule__DatamartSetAggregation__AggregationAssignment_0");
+					put(grammarAccess.getDatamartSetAggregationAccess().getSetAssignment_2_0(), "rule__DatamartSetAggregation__SetAssignment_2_0");
+					put(grammarAccess.getDatamartSetAggregationAccess().getSetAssignment_2_1(), "rule__DatamartSetAggregation__SetAssignment_2_1");
+					put(grammarAccess.getDatamartSetAggregationAccess().getRightAssignment_3_2(), "rule__DatamartSetAggregation__RightAssignment_3_2");
+					put(grammarAccess.getDatamartSlicerAccess().getElementAssignment_1(), "rule__DatamartSlicer__ElementAssignment_1");
+					put(grammarAccess.getDatamartCubeAxisAccess().getAxisAssignment_1(), "rule__DatamartCubeAxis__AxisAssignment_1");
+					put(grammarAccess.getDatamartCubeAxisAccess().getElementsAssignment_3(), "rule__DatamartCubeAxis__ElementsAssignment_3");
+					put(grammarAccess.getDatamartDerivedMeasureAccess().getDerivedRefAssignment_1(), "rule__DatamartDerivedMeasure__DerivedRefAssignment_1");
+					put(grammarAccess.getDatamartDerivedMeasureAccess().getScaledAssignment_2_0(), "rule__DatamartDerivedMeasure__ScaledAssignment_2_0");
+					put(grammarAccess.getDatamartDerivedMeasureAccess().getScaleAssignment_2_1(), "rule__DatamartDerivedMeasure__ScaleAssignment_2_1");
+					put(grammarAccess.getDatamartMeasureAccess().getMeasureRefAssignment_1(), "rule__DatamartMeasure__MeasureRefAssignment_1");
+					put(grammarAccess.getDatamartMeasureAccess().getScaledAssignment_2_0(), "rule__DatamartMeasure__ScaledAssignment_2_0");
+					put(grammarAccess.getDatamartMeasureAccess().getScaleAssignment_2_1(), "rule__DatamartMeasure__ScaleAssignment_2_1");
+					put(grammarAccess.getDatamartHierarchyAccess().getHierarchyRefAssignment_1(), "rule__DatamartHierarchy__HierarchyRefAssignment_1");
+					put(grammarAccess.getDatamartHierarchyAccess().getDefaultMemberAssignment_2(), "rule__DatamartHierarchy__DefaultMemberAssignment_2");
+					put(grammarAccess.getDatamartHierarchyAccess().getAllMemberAssignment_3(), "rule__DatamartHierarchy__AllMemberAssignment_3");
+					put(grammarAccess.getDatamartHierarchyAccess().getAllLevelsAssignment_4(), "rule__DatamartHierarchy__AllLevelsAssignment_4");
+					put(grammarAccess.getDatamartHierarchyAccess().getLevelRefAssignment_5_1(), "rule__DatamartHierarchy__LevelRefAssignment_5_1");
+					put(grammarAccess.getDatamartHierarchyAccess().getFilteredAssignment_5_2_0(), "rule__DatamartHierarchy__FilteredAssignment_5_2_0");
+					put(grammarAccess.getDatamartHierarchyAccess().getSelectedAssignment_5_2_1(), "rule__DatamartHierarchy__SelectedAssignment_5_2_1");
+					put(grammarAccess.getDatamartHierarchyAccess().getAllAssignment_6_0(), "rule__DatamartHierarchy__AllAssignment_6_0");
+					put(grammarAccess.getDatamartHierarchyAccess().getExceptAssignment_6_1_0(), "rule__DatamartHierarchy__ExceptAssignment_6_1_0");
+					put(grammarAccess.getDatamartHierarchyAccess().getExceptRefAssignment_6_1_1(), "rule__DatamartHierarchy__ExceptRefAssignment_6_1_1");
+					put(grammarAccess.getDatamartHierarchyAccess().getOrderedAssignment_6_2_0(), "rule__DatamartHierarchy__OrderedAssignment_6_2_0");
+					put(grammarAccess.getDatamartHierarchyAccess().getOrderRefAssignment_6_2_1(), "rule__DatamartHierarchy__OrderRefAssignment_6_2_1");
+					put(grammarAccess.getDatamartHierarchyAccess().getDescendingAssignment_6_2_2(), "rule__DatamartHierarchy__DescendingAssignment_6_2_2");
+					put(grammarAccess.getAttributeFillerDataAccess().getAttributeRefAssignment_1(), "rule__AttributeFillerData__AttributeRefAssignment_1");
+					put(grammarAccess.getAttributeFillerDataAccess().getFillerTypeAssignment_3(), "rule__AttributeFillerData__FillerTypeAssignment_3");
+					put(grammarAccess.getAttributeFillerDateFutureAccess().getDateFutureYearsAssignment_1(), "rule__AttributeFillerDateFuture__DateFutureYearsAssignment_1");
+					put(grammarAccess.getAttributeFillerDatePastAccess().getDatePastYearsAssignment_1(), "rule__AttributeFillerDatePast__DatePastYearsAssignment_1");
+					put(grammarAccess.getAttributeFillerDateRangeAccess().getDateBeginYearsAssignment_1(), "rule__AttributeFillerDateRange__DateBeginYearsAssignment_1");
+					put(grammarAccess.getAttributeFillerDateRangeAccess().getDateEndYearsAssignment_3(), "rule__AttributeFillerDateRange__DateEndYearsAssignment_3");
+					put(grammarAccess.getAttributeFillerSignedDoubleRangeAccess().getBeginRangeAssignment_1_0_0(), "rule__AttributeFillerSignedDoubleRange__BeginRangeAssignment_1_0_0");
+					put(grammarAccess.getAttributeFillerSignedDoubleRangeAccess().getBeginRangeRefAssignment_1_0_1(), "rule__AttributeFillerSignedDoubleRange__BeginRangeRefAssignment_1_0_1");
+					put(grammarAccess.getAttributeFillerSignedDoubleRangeAccess().getEndRangeAssignment_1_2_0(), "rule__AttributeFillerSignedDoubleRange__EndRangeAssignment_1_2_0");
+					put(grammarAccess.getAttributeFillerSignedDoubleRangeAccess().getEndRangeRefAssignment_1_2_1(), "rule__AttributeFillerSignedDoubleRange__EndRangeRefAssignment_1_2_1");
+					put(grammarAccess.getAttributeFillerSignedDoubleRangeAccess().getDecimalsAssignment_3(), "rule__AttributeFillerSignedDoubleRange__DecimalsAssignment_3");
+					put(grammarAccess.getAttributeFillerSignedDoubleRangeAccess().getRoundedAssignment_5_1(), "rule__AttributeFillerSignedDoubleRange__RoundedAssignment_5_1");
+					put(grammarAccess.getAttributeFillerSignedDoubleRandomAccess().getItemsAssignment_2(), "rule__AttributeFillerSignedDoubleRandom__ItemsAssignment_2");
+					put(grammarAccess.getAttributeFillerSignedIntegerRangeAccess().getBeginRangeAssignment_2_0_0(), "rule__AttributeFillerSignedIntegerRange__BeginRangeAssignment_2_0_0");
+					put(grammarAccess.getAttributeFillerSignedIntegerRangeAccess().getBeginRangeRefAssignment_2_0_1(), "rule__AttributeFillerSignedIntegerRange__BeginRangeRefAssignment_2_0_1");
+					put(grammarAccess.getAttributeFillerSignedIntegerRangeAccess().getEndRangeAssignment_2_2_0(), "rule__AttributeFillerSignedIntegerRange__EndRangeAssignment_2_2_0");
+					put(grammarAccess.getAttributeFillerSignedIntegerRangeAccess().getEndRangeRefAssignment_2_2_1(), "rule__AttributeFillerSignedIntegerRange__EndRangeRefAssignment_2_2_1");
+					put(grammarAccess.getAttributeFillerSignedIntegerRangeAccess().getRoundedAssignment_3_1(), "rule__AttributeFillerSignedIntegerRange__RoundedAssignment_3_1");
+					put(grammarAccess.getAttributeFillerSignedIntegerRandomAccess().getItemsAssignment_2(), "rule__AttributeFillerSignedIntegerRandom__ItemsAssignment_2");
+					put(grammarAccess.getAttributeFillerTextRandomAccess().getItemsAssignment_2(), "rule__AttributeFillerTextRandom__ItemsAssignment_2");
+					put(grammarAccess.getAttributeFillerTextParagraphsAccess().getCountAssignment_2(), "rule__AttributeFillerTextParagraphs__CountAssignment_2");
+					put(grammarAccess.getAttributeFillerTextSentencesAccess().getCountAssignment_2(), "rule__AttributeFillerTextSentences__CountAssignment_2");
+					put(grammarAccess.getAttributeFillerTextWordsAccess().getCountAssignment_2(), "rule__AttributeFillerTextWords__CountAssignment_2");
+					put(grammarAccess.getAttributeFillerUnsignedDoubleRangeAccess().getBeginRangeAssignment_1_0_0(), "rule__AttributeFillerUnsignedDoubleRange__BeginRangeAssignment_1_0_0");
+					put(grammarAccess.getAttributeFillerUnsignedDoubleRangeAccess().getBeginRangeRefAssignment_1_0_1(), "rule__AttributeFillerUnsignedDoubleRange__BeginRangeRefAssignment_1_0_1");
+					put(grammarAccess.getAttributeFillerUnsignedDoubleRangeAccess().getEndRangeAssignment_1_2_0(), "rule__AttributeFillerUnsignedDoubleRange__EndRangeAssignment_1_2_0");
+					put(grammarAccess.getAttributeFillerUnsignedDoubleRangeAccess().getEndRangeRefAssignment_1_2_1(), "rule__AttributeFillerUnsignedDoubleRange__EndRangeRefAssignment_1_2_1");
+					put(grammarAccess.getAttributeFillerUnsignedDoubleRangeAccess().getDecimalsAssignment_3(), "rule__AttributeFillerUnsignedDoubleRange__DecimalsAssignment_3");
+					put(grammarAccess.getAttributeFillerUnsignedDoubleRangeAccess().getRoundedAssignment_5_1(), "rule__AttributeFillerUnsignedDoubleRange__RoundedAssignment_5_1");
+					put(grammarAccess.getAttributeFillerUnsignedDoubleRandomAccess().getItemsAssignment_2(), "rule__AttributeFillerUnsignedDoubleRandom__ItemsAssignment_2");
+					put(grammarAccess.getAttributeFillerUnsignedIntegerRangeAccess().getBeginRangeAssignment_2_0_0(), "rule__AttributeFillerUnsignedIntegerRange__BeginRangeAssignment_2_0_0");
+					put(grammarAccess.getAttributeFillerUnsignedIntegerRangeAccess().getBeginRangeRefAssignment_2_0_1(), "rule__AttributeFillerUnsignedIntegerRange__BeginRangeRefAssignment_2_0_1");
+					put(grammarAccess.getAttributeFillerUnsignedIntegerRangeAccess().getEndRangeAssignment_2_2_0(), "rule__AttributeFillerUnsignedIntegerRange__EndRangeAssignment_2_2_0");
+					put(grammarAccess.getAttributeFillerUnsignedIntegerRangeAccess().getEndRangeRefAssignment_2_2_1(), "rule__AttributeFillerUnsignedIntegerRange__EndRangeRefAssignment_2_2_1");
+					put(grammarAccess.getAttributeFillerUnsignedIntegerRangeAccess().getRoundedAssignment_3_1(), "rule__AttributeFillerUnsignedIntegerRange__RoundedAssignment_3_1");
+					put(grammarAccess.getAttributeFillerUnsignedIntegerRandomAccess().getItemsAssignment_2(), "rule__AttributeFillerUnsignedIntegerRandom__ItemsAssignment_2");
+					put(grammarAccess.getXImportDeclarationAccess().getStaticAssignment_2_0_0(), "rule__XImportDeclaration__StaticAssignment_2_0_0");
+					put(grammarAccess.getXImportDeclarationAccess().getExtensionAssignment_2_0_1(), "rule__XImportDeclaration__ExtensionAssignment_2_0_1");
+					put(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_2_0_2(), "rule__XImportDeclaration__ImportedTypeAssignment_2_0_2");
+					put(grammarAccess.getXImportDeclarationAccess().getWildcardAssignment_2_0_3_0(), "rule__XImportDeclaration__WildcardAssignment_2_0_3_0");
+					put(grammarAccess.getXImportDeclarationAccess().getMemberNameAssignment_2_0_3_1(), "rule__XImportDeclaration__MemberNameAssignment_2_0_3_1");
+					put(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_2_1(), "rule__XImportDeclaration__ImportedTypeAssignment_2_1");
+					put(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceAssignment_2_2(), "rule__XImportDeclaration__ImportedNamespaceAssignment_2_2");
+					put(grammarAccess.getXImportDeclarationAccess().getFqnImportAssignment_2_3_0(), "rule__XImportDeclaration__FqnImportAssignment_2_3_0");
+					put(grammarAccess.getXImportDeclarationAccess().getImportedFullyQualifiedNameAssignment_2_3_1(), "rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1");
+					put(grammarAccess.getXAnnotationAccess().getAnnotationTypeAssignment_2(), "rule__XAnnotation__AnnotationTypeAssignment_2");
+					put(grammarAccess.getXAnnotationAccess().getElementValuePairsAssignment_3_1_0_0(), "rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0");
+					put(grammarAccess.getXAnnotationAccess().getElementValuePairsAssignment_3_1_0_1_1(), "rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1");
+					put(grammarAccess.getXAnnotationAccess().getValueAssignment_3_1_1(), "rule__XAnnotation__ValueAssignment_3_1_1");
+					put(grammarAccess.getXAnnotationElementValuePairAccess().getElementAssignment_0_0_0(), "rule__XAnnotationElementValuePair__ElementAssignment_0_0_0");
+					put(grammarAccess.getXAnnotationElementValuePairAccess().getValueAssignment_1(), "rule__XAnnotationElementValuePair__ValueAssignment_1");
+					put(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_0_1_0(), "rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0");
+					put(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_0_1_1_1(), "rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1");
+					put(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_1_1_1_1(), "rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1");
+					put(grammarAccess.getXAnnotationElementValueAccess().getElementsAssignment_0_1_0(), "rule__XAnnotationElementValue__ElementsAssignment_0_1_0");
+					put(grammarAccess.getXAnnotationElementValueAccess().getElementsAssignment_0_1_1_1(), "rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1");
+					put(grammarAccess.getXAssignmentAccess().getFeatureAssignment_0_1(), "rule__XAssignment__FeatureAssignment_0_1");
+					put(grammarAccess.getXAssignmentAccess().getValueAssignment_0_3(), "rule__XAssignment__ValueAssignment_0_3");
+					put(grammarAccess.getXAssignmentAccess().getFeatureAssignment_1_1_0_0_1(), "rule__XAssignment__FeatureAssignment_1_1_0_0_1");
+					put(grammarAccess.getXAssignmentAccess().getRightOperandAssignment_1_1_1(), "rule__XAssignment__RightOperandAssignment_1_1_1");
+					put(grammarAccess.getXOrExpressionAccess().getFeatureAssignment_1_0_0_1(), "rule__XOrExpression__FeatureAssignment_1_0_0_1");
+					put(grammarAccess.getXOrExpressionAccess().getRightOperandAssignment_1_1(), "rule__XOrExpression__RightOperandAssignment_1_1");
+					put(grammarAccess.getXAndExpressionAccess().getFeatureAssignment_1_0_0_1(), "rule__XAndExpression__FeatureAssignment_1_0_0_1");
+					put(grammarAccess.getXAndExpressionAccess().getRightOperandAssignment_1_1(), "rule__XAndExpression__RightOperandAssignment_1_1");
+					put(grammarAccess.getXEqualityExpressionAccess().getFeatureAssignment_1_0_0_1(), "rule__XEqualityExpression__FeatureAssignment_1_0_0_1");
+					put(grammarAccess.getXEqualityExpressionAccess().getRightOperandAssignment_1_1(), "rule__XEqualityExpression__RightOperandAssignment_1_1");
+					put(grammarAccess.getXRelationalExpressionAccess().getTypeAssignment_1_0_1(), "rule__XRelationalExpression__TypeAssignment_1_0_1");
+					put(grammarAccess.getXRelationalExpressionAccess().getFeatureAssignment_1_1_0_0_1(), "rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1");
+					put(grammarAccess.getXRelationalExpressionAccess().getRightOperandAssignment_1_1_1(), "rule__XRelationalExpression__RightOperandAssignment_1_1_1");
+					put(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureAssignment_1_0_0_1(), "rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1");
+					put(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandAssignment_1_1(), "rule__XOtherOperatorExpression__RightOperandAssignment_1_1");
+					put(grammarAccess.getXAdditiveExpressionAccess().getFeatureAssignment_1_0_0_1(), "rule__XAdditiveExpression__FeatureAssignment_1_0_0_1");
+					put(grammarAccess.getXAdditiveExpressionAccess().getRightOperandAssignment_1_1(), "rule__XAdditiveExpression__RightOperandAssignment_1_1");
+					put(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureAssignment_1_0_0_1(), "rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1");
+					put(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandAssignment_1_1(), "rule__XMultiplicativeExpression__RightOperandAssignment_1_1");
+					put(grammarAccess.getXUnaryOperationAccess().getFeatureAssignment_0_1(), "rule__XUnaryOperation__FeatureAssignment_0_1");
+					put(grammarAccess.getXUnaryOperationAccess().getOperandAssignment_0_2(), "rule__XUnaryOperation__OperandAssignment_0_2");
+					put(grammarAccess.getXCastedExpressionAccess().getTypeAssignment_1_1(), "rule__XCastedExpression__TypeAssignment_1_1");
+					put(grammarAccess.getXPostfixOperationAccess().getFeatureAssignment_1_0_1(), "rule__XPostfixOperation__FeatureAssignment_1_0_1");
+					put(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticAssignment_1_0_0_0_1_1(), "rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1");
+					put(grammarAccess.getXMemberFeatureCallAccess().getFeatureAssignment_1_0_0_0_2(), "rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2");
+					put(grammarAccess.getXMemberFeatureCallAccess().getValueAssignment_1_0_1(), "rule__XMemberFeatureCall__ValueAssignment_1_0_1");
+					put(grammarAccess.getXMemberFeatureCallAccess().getNullSafeAssignment_1_1_0_0_1_1(), "rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1");
+					put(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticAssignment_1_1_0_0_1_2(), "rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2");
+					put(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsAssignment_1_1_1_1(), "rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1");
+					put(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsAssignment_1_1_1_2_1(), "rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1");
+					put(grammarAccess.getXMemberFeatureCallAccess().getFeatureAssignment_1_1_2(), "rule__XMemberFeatureCall__FeatureAssignment_1_1_2");
+					put(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallAssignment_1_1_3_0(), "rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0");
+					put(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_0(), "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0");
+					put(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_1_0(), "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0");
+					put(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_1_1_1(), "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1");
+					put(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_4(), "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4");
+					put(grammarAccess.getXSetLiteralAccess().getElementsAssignment_3_0(), "rule__XSetLiteral__ElementsAssignment_3_0");
+					put(grammarAccess.getXSetLiteralAccess().getElementsAssignment_3_1_1(), "rule__XSetLiteral__ElementsAssignment_3_1_1");
+					put(grammarAccess.getXListLiteralAccess().getElementsAssignment_3_0(), "rule__XListLiteral__ElementsAssignment_3_0");
+					put(grammarAccess.getXListLiteralAccess().getElementsAssignment_3_1_1(), "rule__XListLiteral__ElementsAssignment_3_1_1");
+					put(grammarAccess.getXClosureAccess().getDeclaredFormalParametersAssignment_1_0_0_0(), "rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0");
+					put(grammarAccess.getXClosureAccess().getDeclaredFormalParametersAssignment_1_0_0_1_1(), "rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1");
+					put(grammarAccess.getXClosureAccess().getExplicitSyntaxAssignment_1_0_1(), "rule__XClosure__ExplicitSyntaxAssignment_1_0_1");
+					put(grammarAccess.getXClosureAccess().getExpressionAssignment_2(), "rule__XClosure__ExpressionAssignment_2");
+					put(grammarAccess.getXExpressionInClosureAccess().getExpressionsAssignment_1_0(), "rule__XExpressionInClosure__ExpressionsAssignment_1_0");
+					put(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersAssignment_0_0_1_0(), "rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0");
+					put(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersAssignment_0_0_1_1_1(), "rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1");
+					put(grammarAccess.getXShortClosureAccess().getExplicitSyntaxAssignment_0_0_2(), "rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2");
+					put(grammarAccess.getXShortClosureAccess().getExpressionAssignment_1(), "rule__XShortClosure__ExpressionAssignment_1");
+					put(grammarAccess.getXIfExpressionAccess().getIfAssignment_3(), "rule__XIfExpression__IfAssignment_3");
+					put(grammarAccess.getXIfExpressionAccess().getThenAssignment_5(), "rule__XIfExpression__ThenAssignment_5");
+					put(grammarAccess.getXIfExpressionAccess().getElseAssignment_6_1(), "rule__XIfExpression__ElseAssignment_6_1");
+					put(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamAssignment_2_0_0_0_1(), "rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1");
+					put(grammarAccess.getXSwitchExpressionAccess().getSwitchAssignment_2_0_1(), "rule__XSwitchExpression__SwitchAssignment_2_0_1");
+					put(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamAssignment_2_1_0_0_0(), "rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0");
+					put(grammarAccess.getXSwitchExpressionAccess().getSwitchAssignment_2_1_1(), "rule__XSwitchExpression__SwitchAssignment_2_1_1");
+					put(grammarAccess.getXSwitchExpressionAccess().getCasesAssignment_4(), "rule__XSwitchExpression__CasesAssignment_4");
+					put(grammarAccess.getXSwitchExpressionAccess().getDefaultAssignment_5_2(), "rule__XSwitchExpression__DefaultAssignment_5_2");
+					put(grammarAccess.getXCasePartAccess().getTypeGuardAssignment_1(), "rule__XCasePart__TypeGuardAssignment_1");
+					put(grammarAccess.getXCasePartAccess().getCaseAssignment_2_1(), "rule__XCasePart__CaseAssignment_2_1");
+					put(grammarAccess.getXCasePartAccess().getThenAssignment_3_0_1(), "rule__XCasePart__ThenAssignment_3_0_1");
+					put(grammarAccess.getXCasePartAccess().getFallThroughAssignment_3_1(), "rule__XCasePart__FallThroughAssignment_3_1");
+					put(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamAssignment_0_0_3(), "rule__XForLoopExpression__DeclaredParamAssignment_0_0_3");
+					put(grammarAccess.getXForLoopExpressionAccess().getForExpressionAssignment_1(), "rule__XForLoopExpression__ForExpressionAssignment_1");
+					put(grammarAccess.getXForLoopExpressionAccess().getEachExpressionAssignment_3(), "rule__XForLoopExpression__EachExpressionAssignment_3");
+					put(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsAssignment_3_0(), "rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0");
+					put(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsAssignment_3_1_1(), "rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1");
+					put(grammarAccess.getXBasicForLoopExpressionAccess().getExpressionAssignment_5(), "rule__XBasicForLoopExpression__ExpressionAssignment_5");
+					put(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsAssignment_7_0(), "rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0");
+					put(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsAssignment_7_1_1(), "rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1");
+					put(grammarAccess.getXBasicForLoopExpressionAccess().getEachExpressionAssignment_9(), "rule__XBasicForLoopExpression__EachExpressionAssignment_9");
+					put(grammarAccess.getXWhileExpressionAccess().getPredicateAssignment_3(), "rule__XWhileExpression__PredicateAssignment_3");
+					put(grammarAccess.getXWhileExpressionAccess().getBodyAssignment_5(), "rule__XWhileExpression__BodyAssignment_5");
+					put(grammarAccess.getXDoWhileExpressionAccess().getBodyAssignment_2(), "rule__XDoWhileExpression__BodyAssignment_2");
+					put(grammarAccess.getXDoWhileExpressionAccess().getPredicateAssignment_5(), "rule__XDoWhileExpression__PredicateAssignment_5");
+					put(grammarAccess.getXBlockExpressionAccess().getExpressionsAssignment_2_0(), "rule__XBlockExpression__ExpressionsAssignment_2_0");
+					put(grammarAccess.getXVariableDeclarationAccess().getWriteableAssignment_1_0(), "rule__XVariableDeclaration__WriteableAssignment_1_0");
+					put(grammarAccess.getXVariableDeclarationAccess().getTypeAssignment_2_0_0_0(), "rule__XVariableDeclaration__TypeAssignment_2_0_0_0");
+					put(grammarAccess.getXVariableDeclarationAccess().getNameAssignment_2_0_0_1(), "rule__XVariableDeclaration__NameAssignment_2_0_0_1");
+					put(grammarAccess.getXVariableDeclarationAccess().getNameAssignment_2_1(), "rule__XVariableDeclaration__NameAssignment_2_1");
+					put(grammarAccess.getXVariableDeclarationAccess().getRightAssignment_3_1(), "rule__XVariableDeclaration__RightAssignment_3_1");
+					put(grammarAccess.getJvmFormalParameterAccess().getParameterTypeAssignment_0(), "rule__JvmFormalParameter__ParameterTypeAssignment_0");
+					put(grammarAccess.getJvmFormalParameterAccess().getNameAssignment_1(), "rule__JvmFormalParameter__NameAssignment_1");
+					put(grammarAccess.getFullJvmFormalParameterAccess().getParameterTypeAssignment_0(), "rule__FullJvmFormalParameter__ParameterTypeAssignment_0");
+					put(grammarAccess.getFullJvmFormalParameterAccess().getNameAssignment_1(), "rule__FullJvmFormalParameter__NameAssignment_1");
+					put(grammarAccess.getXFeatureCallAccess().getTypeArgumentsAssignment_1_1(), "rule__XFeatureCall__TypeArgumentsAssignment_1_1");
+					put(grammarAccess.getXFeatureCallAccess().getTypeArgumentsAssignment_1_2_1(), "rule__XFeatureCall__TypeArgumentsAssignment_1_2_1");
+					put(grammarAccess.getXFeatureCallAccess().getFeatureAssignment_2(), "rule__XFeatureCall__FeatureAssignment_2");
+					put(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallAssignment_3_0(), "rule__XFeatureCall__ExplicitOperationCallAssignment_3_0");
+					put(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_0(), "rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0");
+					put(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_1_0(), "rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0");
+					put(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_1_1_1(), "rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1");
+					put(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_4(), "rule__XFeatureCall__FeatureCallArgumentsAssignment_4");
+					put(grammarAccess.getXConstructorCallAccess().getConstructorAssignment_2(), "rule__XConstructorCall__ConstructorAssignment_2");
+					put(grammarAccess.getXConstructorCallAccess().getTypeArgumentsAssignment_3_1(), "rule__XConstructorCall__TypeArgumentsAssignment_3_1");
+					put(grammarAccess.getXConstructorCallAccess().getTypeArgumentsAssignment_3_2_1(), "rule__XConstructorCall__TypeArgumentsAssignment_3_2_1");
+					put(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallAssignment_4_0(), "rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0");
+					put(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_0(), "rule__XConstructorCall__ArgumentsAssignment_4_1_0");
+					put(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_1_0(), "rule__XConstructorCall__ArgumentsAssignment_4_1_1_0");
+					put(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_1_1_1(), "rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1");
+					put(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_5(), "rule__XConstructorCall__ArgumentsAssignment_5");
+					put(grammarAccess.getXBooleanLiteralAccess().getIsTrueAssignment_1_1(), "rule__XBooleanLiteral__IsTrueAssignment_1_1");
+					put(grammarAccess.getXNumberLiteralAccess().getValueAssignment_1(), "rule__XNumberLiteral__ValueAssignment_1");
+					put(grammarAccess.getXStringLiteralAccess().getValueAssignment_1(), "rule__XStringLiteral__ValueAssignment_1");
+					put(grammarAccess.getXTypeLiteralAccess().getTypeAssignment_3(), "rule__XTypeLiteral__TypeAssignment_3");
+					put(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsAssignment_4(), "rule__XTypeLiteral__ArrayDimensionsAssignment_4");
+					put(grammarAccess.getXThrowExpressionAccess().getExpressionAssignment_2(), "rule__XThrowExpression__ExpressionAssignment_2");
+					put(grammarAccess.getXReturnExpressionAccess().getExpressionAssignment_2(), "rule__XReturnExpression__ExpressionAssignment_2");
+					put(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionAssignment_2(), "rule__XTryCatchFinallyExpression__ExpressionAssignment_2");
+					put(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesAssignment_3_0_0(), "rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0");
+					put(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionAssignment_3_0_1_1(), "rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1");
+					put(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionAssignment_3_1_1(), "rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1");
+					put(grammarAccess.getXSynchronizedExpressionAccess().getParamAssignment_1(), "rule__XSynchronizedExpression__ParamAssignment_1");
+					put(grammarAccess.getXSynchronizedExpressionAccess().getExpressionAssignment_3(), "rule__XSynchronizedExpression__ExpressionAssignment_3");
+					put(grammarAccess.getXCatchClauseAccess().getDeclaredParamAssignment_2(), "rule__XCatchClause__DeclaredParamAssignment_2");
+					put(grammarAccess.getXCatchClauseAccess().getExpressionAssignment_4(), "rule__XCatchClause__ExpressionAssignment_4");
+					put(grammarAccess.getXFunctionTypeRefAccess().getParamTypesAssignment_0_1_0(), "rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0");
+					put(grammarAccess.getXFunctionTypeRefAccess().getParamTypesAssignment_0_1_1_1(), "rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1");
+					put(grammarAccess.getXFunctionTypeRefAccess().getReturnTypeAssignment_2(), "rule__XFunctionTypeRef__ReturnTypeAssignment_2");
+					put(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeAssignment_0(), "rule__JvmParameterizedTypeReference__TypeAssignment_0");
+					put(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_1(), "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1");
+					put(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_2_1(), "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1");
+					put(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeAssignment_1_4_1(), "rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1");
+					put(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_4_2_1(), "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1");
+					put(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_4_2_2_1(), "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1");
+					put(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_0_0(), "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0");
+					put(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_0_1(), "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1");
+					put(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_1_0(), "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0");
+					put(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_1_1(), "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1");
+					put(grammarAccess.getJvmUpperBoundAccess().getTypeReferenceAssignment_1(), "rule__JvmUpperBound__TypeReferenceAssignment_1");
+					put(grammarAccess.getJvmUpperBoundAndedAccess().getTypeReferenceAssignment_1(), "rule__JvmUpperBoundAnded__TypeReferenceAssignment_1");
+					put(grammarAccess.getJvmLowerBoundAccess().getTypeReferenceAssignment_1(), "rule__JvmLowerBound__TypeReferenceAssignment_1");
+					put(grammarAccess.getJvmLowerBoundAndedAccess().getTypeReferenceAssignment_1(), "rule__JvmLowerBoundAnded__TypeReferenceAssignment_1");
+					put(grammarAccess.getJvmTypeParameterAccess().getNameAssignment_0(), "rule__JvmTypeParameter__NameAssignment_0");
+					put(grammarAccess.getJvmTypeParameterAccess().getConstraintsAssignment_1_0(), "rule__JvmTypeParameter__ConstraintsAssignment_1_0");
+					put(grammarAccess.getJvmTypeParameterAccess().getConstraintsAssignment_1_1(), "rule__JvmTypeParameter__ConstraintsAssignment_1_1");
+					put(grammarAccess.getXImportSectionAccess().getImportDeclarationsAssignment(), "rule__XImportSection__ImportDeclarationsAssignment");
+					put(grammarAccess.getDatamartAttributeAccess().getUnorderedGroup_5(), "rule__DatamartAttribute__UnorderedGroup_5");
+				}
+			};
+		}
+		return nameMappings.get(element);
+	}
+			
+	@Override
+	protected String[] getInitialHiddenTokens() {
+		return new String[] { "RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT" };
+	}
+
+	public DatamartDSLGrammarAccess getGrammarAccess() {
+		return this.grammarAccess;
+	}
+
+	public void setGrammarAccess(DatamartDSLGrammarAccess grammarAccess) {
+		this.grammarAccess = grammarAccess;
+	}
+}
diff --git a/org.eclipse.osbp.xtext.datamartdsl.ide/src-gen/org/eclipse/osbp/xtext/datamartdsl/ide/contentassist/antlr/PartialDatamartDSLContentAssistParser.java b/org.eclipse.osbp.xtext.datamartdsl.ide/src-gen/org/eclipse/osbp/xtext/datamartdsl/ide/contentassist/antlr/PartialDatamartDSLContentAssistParser.java
new file mode 100644
index 0000000..d2864f4
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datamartdsl.ide/src-gen/org/eclipse/osbp/xtext/datamartdsl/ide/contentassist/antlr/PartialDatamartDSLContentAssistParser.java
@@ -0,0 +1,47 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2017 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  All rights reserved. This program and the accompanying materials           
+ *  are made available under the terms of the Eclipse Public License v1.0       
+ *  which accompanies this distribution, and is available at                  
+ *  http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ *  Contributors:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ * generated by Xtext 2.11.0
+ *
+ */
+
+package org.eclipse.osbp.xtext.datamartdsl.ide.contentassist.antlr;
+
+import java.util.Collection;
+import java.util.Collections;
+import org.eclipse.xtext.AbstractRule;
+import org.eclipse.xtext.ide.editor.contentassist.antlr.FollowElement;
+import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
+import org.eclipse.xtext.ide.editor.partialEditing.IPartialEditingContentAssistParser;
+import org.eclipse.xtext.util.PolymorphicDispatcher;
+
+public class PartialDatamartDSLContentAssistParser extends DatamartDSLParser implements IPartialEditingContentAssistParser {
+
+	private AbstractRule rule;
+
+	@Override
+	public void initializeFor(AbstractRule rule) {
+		this.rule = rule;
+	}
+
+	@Override
+	protected Collection<FollowElement> getFollowElements(AbstractInternalContentAssistParser parser) {
+		if (rule == null || rule.eIsProxy())
+			return Collections.emptyList();
+		String methodName = "entryRule" + rule.getName();
+		PolymorphicDispatcher<Collection<FollowElement>> dispatcher = 
+			new PolymorphicDispatcher<Collection<FollowElement>>(methodName, 0, 0, Collections.singletonList(parser));
+		dispatcher.invoke();
+		return parser.getFollowElements();
+	}
+
+}
diff --git a/org.eclipse.osbp.xtext.datamartdsl.ide/src-gen/org/eclipse/osbp/xtext/datamartdsl/ide/contentassist/antlr/internal/InternalDatamartDSL.g b/org.eclipse.osbp.xtext.datamartdsl.ide/src-gen/org/eclipse/osbp/xtext/datamartdsl/ide/contentassist/antlr/internal/InternalDatamartDSL.g
new file mode 100644
index 0000000..fcce63b
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datamartdsl.ide/src-gen/org/eclipse/osbp/xtext/datamartdsl/ide/contentassist/antlr/internal/InternalDatamartDSL.g
@@ -0,0 +1,33181 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2017 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  All rights reserved. This program and the accompanying materials           
+ *  are made available under the terms of the Eclipse Public License v1.0       
+ *  which accompanies this distribution, and is available at                  
+ *  http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ *  Contributors:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ * generated by Xtext 2.11.0
+ *
+ */
+
+grammar InternalDatamartDSL;
+
+options {
+	superClass=AbstractInternalContentAssistParser;
+	backtrack=true;
+}
+
+@lexer::header {
+package org.eclipse.osbp.xtext.datamartdsl.ide.contentassist.antlr.internal;
+
+// Hack: Use our own Lexer superclass by means of import. 
+// Currently there is no other way to specify the superclass for the lexer.
+import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.Lexer;
+}
+
+@parser::header {
+package org.eclipse.osbp.xtext.datamartdsl.ide.contentassist.antlr.internal;
+
+import java.io.InputStream;
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parser.*;
+import org.eclipse.xtext.parser.impl.*;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
+import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.DFA;
+import org.eclipse.osbp.xtext.datamartdsl.services.DatamartDSLGrammarAccess;
+
+}
+@parser::members {
+	private DatamartDSLGrammarAccess grammarAccess;
+
+	public void setGrammarAccess(DatamartDSLGrammarAccess grammarAccess) {
+		this.grammarAccess = grammarAccess;
+	}
+
+	@Override
+	protected Grammar getGrammar() {
+		return grammarAccess.getGrammar();
+	}
+
+	@Override
+	protected String getValueForTokenName(String tokenName) {
+		return tokenName;
+	}
+}
+
+// Entry rule entryRuleDatamartModel
+entryRuleDatamartModel
+:
+{ before(grammarAccess.getDatamartModelRule()); }
+	 ruleDatamartModel
+{ after(grammarAccess.getDatamartModelRule()); } 
+	 EOF 
+;
+
+// Rule DatamartModel
+ruleDatamartModel 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getDatamartModelAccess().getGroup()); }
+		(rule__DatamartModel__Group__0)
+		{ after(grammarAccess.getDatamartModelAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleDatamartPackage
+entryRuleDatamartPackage
+:
+{ before(grammarAccess.getDatamartPackageRule()); }
+	 ruleDatamartPackage
+{ after(grammarAccess.getDatamartPackageRule()); } 
+	 EOF 
+;
+
+// Rule DatamartPackage
+ruleDatamartPackage 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getDatamartPackageAccess().getGroup()); }
+		(rule__DatamartPackage__Group__0)
+		{ after(grammarAccess.getDatamartPackageAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleDatamartDefinition
+entryRuleDatamartDefinition
+:
+{ before(grammarAccess.getDatamartDefinitionRule()); }
+	 ruleDatamartDefinition
+{ after(grammarAccess.getDatamartDefinitionRule()); } 
+	 EOF 
+;
+
+// Rule DatamartDefinition
+ruleDatamartDefinition 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getDatamartDefinitionAccess().getGroup()); }
+		(rule__DatamartDefinition__Group__0)
+		{ after(grammarAccess.getDatamartDefinitionAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleDatamartRole
+entryRuleDatamartRole
+:
+{ before(grammarAccess.getDatamartRoleRule()); }
+	 ruleDatamartRole
+{ after(grammarAccess.getDatamartRoleRule()); } 
+	 EOF 
+;
+
+// Rule DatamartRole
+ruleDatamartRole 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getDatamartRoleAccess().getGroup()); }
+		(rule__DatamartRole__Group__0)
+		{ after(grammarAccess.getDatamartRoleAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleDatamartSource
+entryRuleDatamartSource
+:
+{ before(grammarAccess.getDatamartSourceRule()); }
+	 ruleDatamartSource
+{ after(grammarAccess.getDatamartSourceRule()); } 
+	 EOF 
+;
+
+// Rule DatamartSource
+ruleDatamartSource 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getDatamartSourceAccess().getAlternatives()); }
+		(rule__DatamartSource__Alternatives)
+		{ after(grammarAccess.getDatamartSourceAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleDatamartTask
+entryRuleDatamartTask
+:
+{ before(grammarAccess.getDatamartTaskRule()); }
+	 ruleDatamartTask
+{ after(grammarAccess.getDatamartTaskRule()); } 
+	 EOF 
+;
+
+// Rule DatamartTask
+ruleDatamartTask 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getDatamartTaskAccess().getGroup()); }
+		(rule__DatamartTask__Group__0)
+		{ after(grammarAccess.getDatamartTaskAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleDatamartColumn
+entryRuleDatamartColumn
+:
+{ before(grammarAccess.getDatamartColumnRule()); }
+	 ruleDatamartColumn
+{ after(grammarAccess.getDatamartColumnRule()); } 
+	 EOF 
+;
+
+// Rule DatamartColumn
+ruleDatamartColumn 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getDatamartColumnAccess().getGroup()); }
+		(rule__DatamartColumn__Group__0)
+		{ after(grammarAccess.getDatamartColumnAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleDatamartTaskFilter
+entryRuleDatamartTaskFilter
+:
+{ before(grammarAccess.getDatamartTaskFilterRule()); }
+	 ruleDatamartTaskFilter
+{ after(grammarAccess.getDatamartTaskFilterRule()); } 
+	 EOF 
+;
+
+// Rule DatamartTaskFilter
+ruleDatamartTaskFilter 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getDatamartTaskFilterAccess().getGroup()); }
+		(rule__DatamartTaskFilter__Group__0)
+		{ after(grammarAccess.getDatamartTaskFilterAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleDatamartCube
+entryRuleDatamartCube
+:
+{ before(grammarAccess.getDatamartCubeRule()); }
+	 ruleDatamartCube
+{ after(grammarAccess.getDatamartCubeRule()); } 
+	 EOF 
+;
+
+// Rule DatamartCube
+ruleDatamartCube 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getDatamartCubeAccess().getGroup()); }
+		(rule__DatamartCube__Group__0)
+		{ after(grammarAccess.getDatamartCubeAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleDatamartReference
+entryRuleDatamartReference
+:
+{ before(grammarAccess.getDatamartReferenceRule()); }
+	 ruleDatamartReference
+{ after(grammarAccess.getDatamartReferenceRule()); } 
+	 EOF 
+;
+
+// Rule DatamartReference
+ruleDatamartReference 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getDatamartReferenceAccess().getGroup()); }
+		(rule__DatamartReference__Group__0)
+		{ after(grammarAccess.getDatamartReferenceAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleDatamartEntity
+entryRuleDatamartEntity
+:
+{ before(grammarAccess.getDatamartEntityRule()); }
+	 ruleDatamartEntity
+{ after(grammarAccess.getDatamartEntityRule()); } 
+	 EOF 
+;
+
+// Rule DatamartEntity
+ruleDatamartEntity 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getDatamartEntityAccess().getGroup()); }
+		(rule__DatamartEntity__Group__0)
+		{ after(grammarAccess.getDatamartEntityAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleDatamartNavigation
+entryRuleDatamartNavigation
+:
+{ before(grammarAccess.getDatamartNavigationRule()); }
+	 ruleDatamartNavigation
+{ after(grammarAccess.getDatamartNavigationRule()); } 
+	 EOF 
+;
+
+// Rule DatamartNavigation
+ruleDatamartNavigation 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getDatamartNavigationAccess().getAlternatives()); }
+		(rule__DatamartNavigation__Alternatives)
+		{ after(grammarAccess.getDatamartNavigationAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleDatamartOwner
+entryRuleDatamartOwner
+:
+{ before(grammarAccess.getDatamartOwnerRule()); }
+	 ruleDatamartOwner
+{ after(grammarAccess.getDatamartOwnerRule()); } 
+	 EOF 
+;
+
+// Rule DatamartOwner
+ruleDatamartOwner 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getDatamartOwnerAccess().getGroup()); }
+		(rule__DatamartOwner__Group__0)
+		{ after(grammarAccess.getDatamartOwnerAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleDatamartMember
+entryRuleDatamartMember
+:
+{ before(grammarAccess.getDatamartMemberRule()); }
+	 ruleDatamartMember
+{ after(grammarAccess.getDatamartMemberRule()); } 
+	 EOF 
+;
+
+// Rule DatamartMember
+ruleDatamartMember 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getDatamartMemberAccess().getGroup()); }
+		(rule__DatamartMember__Group__0)
+		{ after(grammarAccess.getDatamartMemberAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleDatamartAxis
+entryRuleDatamartAxis
+:
+{ before(grammarAccess.getDatamartAxisRule()); }
+	 ruleDatamartAxis
+{ after(grammarAccess.getDatamartAxisRule()); } 
+	 EOF 
+;
+
+// Rule DatamartAxis
+ruleDatamartAxis 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getDatamartAxisAccess().getGroup()); }
+		(rule__DatamartAxis__Group__0)
+		{ after(grammarAccess.getDatamartAxisAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleDatamartAttributeBase
+entryRuleDatamartAttributeBase
+:
+{ before(grammarAccess.getDatamartAttributeBaseRule()); }
+	 ruleDatamartAttributeBase
+{ after(grammarAccess.getDatamartAttributeBaseRule()); } 
+	 EOF 
+;
+
+// Rule DatamartAttributeBase
+ruleDatamartAttributeBase 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getDatamartAttributeBaseAccess().getGroup()); }
+		(rule__DatamartAttributeBase__Group__0)
+		{ after(grammarAccess.getDatamartAttributeBaseAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleDatamartAttribute
+entryRuleDatamartAttribute
+:
+{ before(grammarAccess.getDatamartAttributeRule()); }
+	 ruleDatamartAttribute
+{ after(grammarAccess.getDatamartAttributeRule()); } 
+	 EOF 
+;
+
+// Rule DatamartAttribute
+ruleDatamartAttribute 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getDatamartAttributeAccess().getGroup()); }
+		(rule__DatamartAttribute__Group__0)
+		{ after(grammarAccess.getDatamartAttributeAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleDatamartCondition
+entryRuleDatamartCondition
+:
+{ before(grammarAccess.getDatamartConditionRule()); }
+	 ruleDatamartCondition
+{ after(grammarAccess.getDatamartConditionRule()); } 
+	 EOF 
+;
+
+// Rule DatamartCondition
+ruleDatamartCondition 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getDatamartConditionAccess().getGroup()); }
+		(rule__DatamartCondition__Group__0)
+		{ after(grammarAccess.getDatamartConditionAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleDatamartOrder
+entryRuleDatamartOrder
+:
+{ before(grammarAccess.getDatamartOrderRule()); }
+	 ruleDatamartOrder
+{ after(grammarAccess.getDatamartOrderRule()); } 
+	 EOF 
+;
+
+// Rule DatamartOrder
+ruleDatamartOrder 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getDatamartOrderAccess().getGroup()); }
+		(rule__DatamartOrder__Group__0)
+		{ after(grammarAccess.getDatamartOrderAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleDatamartDisjunction
+entryRuleDatamartDisjunction
+:
+{ before(grammarAccess.getDatamartDisjunctionRule()); }
+	 ruleDatamartDisjunction
+{ after(grammarAccess.getDatamartDisjunctionRule()); } 
+	 EOF 
+;
+
+// Rule DatamartDisjunction
+ruleDatamartDisjunction 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getDatamartDisjunctionAccess().getGroup()); }
+		(rule__DatamartDisjunction__Group__0)
+		{ after(grammarAccess.getDatamartDisjunctionAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleDatamartConjunction
+entryRuleDatamartConjunction
+:
+{ before(grammarAccess.getDatamartConjunctionRule()); }
+	 ruleDatamartConjunction
+{ after(grammarAccess.getDatamartConjunctionRule()); } 
+	 EOF 
+;
+
+// Rule DatamartConjunction
+ruleDatamartConjunction 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getDatamartConjunctionAccess().getGroup()); }
+		(rule__DatamartConjunction__Group__0)
+		{ after(grammarAccess.getDatamartConjunctionAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleDatamartConditionalExpression
+entryRuleDatamartConditionalExpression
+:
+{ before(grammarAccess.getDatamartConditionalExpressionRule()); }
+	 ruleDatamartConditionalExpression
+{ after(grammarAccess.getDatamartConditionalExpressionRule()); } 
+	 EOF 
+;
+
+// Rule DatamartConditionalExpression
+ruleDatamartConditionalExpression 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getDatamartConditionalExpressionAccess().getGroup()); }
+		(rule__DatamartConditionalExpression__Group__0)
+		{ after(grammarAccess.getDatamartConditionalExpressionAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleDatamartOperand
+entryRuleDatamartOperand
+:
+{ before(grammarAccess.getDatamartOperandRule()); }
+	 ruleDatamartOperand
+{ after(grammarAccess.getDatamartOperandRule()); } 
+	 EOF 
+;
+
+// Rule DatamartOperand
+ruleDatamartOperand 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getDatamartOperandAccess().getAlternatives()); }
+		(rule__DatamartOperand__Alternatives)
+		{ after(grammarAccess.getDatamartOperandAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleDatamartValue
+entryRuleDatamartValue
+:
+{ before(grammarAccess.getDatamartValueRule()); }
+	 ruleDatamartValue
+{ after(grammarAccess.getDatamartValueRule()); } 
+	 EOF 
+;
+
+// Rule DatamartValue
+ruleDatamartValue 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getDatamartValueAccess().getAlternatives()); }
+		(rule__DatamartValue__Alternatives)
+		{ after(grammarAccess.getDatamartValueAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleDatamartCubeElement
+entryRuleDatamartCubeElement
+:
+{ before(grammarAccess.getDatamartCubeElementRule()); }
+	 ruleDatamartCubeElement
+{ after(grammarAccess.getDatamartCubeElementRule()); } 
+	 EOF 
+;
+
+// Rule DatamartCubeElement
+ruleDatamartCubeElement 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getDatamartCubeElementAccess().getAlternatives()); }
+		(rule__DatamartCubeElement__Alternatives)
+		{ after(grammarAccess.getDatamartCubeElementAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleDatamartDefineDerivedMeasure
+entryRuleDatamartDefineDerivedMeasure
+:
+{ before(grammarAccess.getDatamartDefineDerivedMeasureRule()); }
+	 ruleDatamartDefineDerivedMeasure
+{ after(grammarAccess.getDatamartDefineDerivedMeasureRule()); } 
+	 EOF 
+;
+
+// Rule DatamartDefineDerivedMeasure
+ruleDatamartDefineDerivedMeasure 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getDatamartDefineDerivedMeasureAccess().getGroup()); }
+		(rule__DatamartDefineDerivedMeasure__Group__0)
+		{ after(grammarAccess.getDatamartDefineDerivedMeasureAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleDatamartAddition
+entryRuleDatamartAddition
+:
+{ before(grammarAccess.getDatamartAdditionRule()); }
+	 ruleDatamartAddition
+{ after(grammarAccess.getDatamartAdditionRule()); } 
+	 EOF 
+;
+
+// Rule DatamartAddition
+ruleDatamartAddition 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getDatamartAdditionAccess().getGroup()); }
+		(rule__DatamartAddition__Group__0)
+		{ after(grammarAccess.getDatamartAdditionAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleDatamartMultiplication
+entryRuleDatamartMultiplication
+:
+{ before(grammarAccess.getDatamartMultiplicationRule()); }
+	 ruleDatamartMultiplication
+{ after(grammarAccess.getDatamartMultiplicationRule()); } 
+	 EOF 
+;
+
+// Rule DatamartMultiplication
+ruleDatamartMultiplication 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getDatamartMultiplicationAccess().getGroup()); }
+		(rule__DatamartMultiplication__Group__0)
+		{ after(grammarAccess.getDatamartMultiplicationAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleDatamartPrimary
+entryRuleDatamartPrimary
+:
+{ before(grammarAccess.getDatamartPrimaryRule()); }
+	 ruleDatamartPrimary
+{ after(grammarAccess.getDatamartPrimaryRule()); } 
+	 EOF 
+;
+
+// Rule DatamartPrimary
+ruleDatamartPrimary 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getDatamartPrimaryAccess().getAlternatives()); }
+		(rule__DatamartPrimary__Alternatives)
+		{ after(grammarAccess.getDatamartPrimaryAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleDatamartNumberOrElement
+entryRuleDatamartNumberOrElement
+:
+{ before(grammarAccess.getDatamartNumberOrElementRule()); }
+	 ruleDatamartNumberOrElement
+{ after(grammarAccess.getDatamartNumberOrElementRule()); } 
+	 EOF 
+;
+
+// Rule DatamartNumberOrElement
+ruleDatamartNumberOrElement 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getDatamartNumberOrElementAccess().getAlternatives()); }
+		(rule__DatamartNumberOrElement__Alternatives)
+		{ after(grammarAccess.getDatamartNumberOrElementAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleDatamartMemberTuple
+entryRuleDatamartMemberTuple
+:
+{ before(grammarAccess.getDatamartMemberTupleRule()); }
+	 ruleDatamartMemberTuple
+{ after(grammarAccess.getDatamartMemberTupleRule()); } 
+	 EOF 
+;
+
+// Rule DatamartMemberTuple
+ruleDatamartMemberTuple 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getDatamartMemberTupleAccess().getGroup()); }
+		(rule__DatamartMemberTuple__Group__0)
+		{ after(grammarAccess.getDatamartMemberTupleAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleDatamartFunction
+entryRuleDatamartFunction
+:
+{ before(grammarAccess.getDatamartFunctionRule()); }
+	 ruleDatamartFunction
+{ after(grammarAccess.getDatamartFunctionRule()); } 
+	 EOF 
+;
+
+// Rule DatamartFunction
+ruleDatamartFunction 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getDatamartFunctionAccess().getFunctionAssignment()); }
+		(rule__DatamartFunction__FunctionAssignment)
+		{ after(grammarAccess.getDatamartFunctionAccess().getFunctionAssignment()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleDatamartParameterFunction
+entryRuleDatamartParameterFunction
+:
+{ before(grammarAccess.getDatamartParameterFunctionRule()); }
+	 ruleDatamartParameterFunction
+{ after(grammarAccess.getDatamartParameterFunctionRule()); } 
+	 EOF 
+;
+
+// Rule DatamartParameterFunction
+ruleDatamartParameterFunction 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getDatamartParameterFunctionAccess().getGroup()); }
+		(rule__DatamartParameterFunction__Group__0)
+		{ after(grammarAccess.getDatamartParameterFunctionAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleDatamartFunctionIntParameter
+entryRuleDatamartFunctionIntParameter
+:
+{ before(grammarAccess.getDatamartFunctionIntParameterRule()); }
+	 ruleDatamartFunctionIntParameter
+{ after(grammarAccess.getDatamartFunctionIntParameterRule()); } 
+	 EOF 
+;
+
+// Rule DatamartFunctionIntParameter
+ruleDatamartFunctionIntParameter 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getDatamartFunctionIntParameterAccess().getValueAssignment()); }
+		(rule__DatamartFunctionIntParameter__ValueAssignment)
+		{ after(grammarAccess.getDatamartFunctionIntParameterAccess().getValueAssignment()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleDatamartSetFunction
+entryRuleDatamartSetFunction
+:
+{ before(grammarAccess.getDatamartSetFunctionRule()); }
+	 ruleDatamartSetFunction
+{ after(grammarAccess.getDatamartSetFunctionRule()); } 
+	 EOF 
+;
+
+// Rule DatamartSetFunction
+ruleDatamartSetFunction 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getDatamartSetFunctionAccess().getSetFunctionAssignment()); }
+		(rule__DatamartSetFunction__SetFunctionAssignment)
+		{ after(grammarAccess.getDatamartSetFunctionAccess().getSetFunctionAssignment()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleDatamartSetParameterFunction
+entryRuleDatamartSetParameterFunction
+:
+{ before(grammarAccess.getDatamartSetParameterFunctionRule()); }
+	 ruleDatamartSetParameterFunction
+{ after(grammarAccess.getDatamartSetParameterFunctionRule()); } 
+	 EOF 
+;
+
+// Rule DatamartSetParameterFunction
+ruleDatamartSetParameterFunction 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getDatamartSetParameterFunctionAccess().getGroup()); }
+		(rule__DatamartSetParameterFunction__Group__0)
+		{ after(grammarAccess.getDatamartSetParameterFunctionAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleDatamartSetAggregationFunction
+entryRuleDatamartSetAggregationFunction
+:
+{ before(grammarAccess.getDatamartSetAggregationFunctionRule()); }
+	 ruleDatamartSetAggregationFunction
+{ after(grammarAccess.getDatamartSetAggregationFunctionRule()); } 
+	 EOF 
+;
+
+// Rule DatamartSetAggregationFunction
+ruleDatamartSetAggregationFunction 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getDatamartSetAggregationFunctionAccess().getGroup()); }
+		(rule__DatamartSetAggregationFunction__Group__0)
+		{ after(grammarAccess.getDatamartSetAggregationFunctionAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleDatamartSetTuple
+entryRuleDatamartSetTuple
+:
+{ before(grammarAccess.getDatamartSetTupleRule()); }
+	 ruleDatamartSetTuple
+{ after(grammarAccess.getDatamartSetTupleRule()); } 
+	 EOF 
+;
+
+// Rule DatamartSetTuple
+ruleDatamartSetTuple 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getDatamartSetTupleAccess().getGroup()); }
+		(rule__DatamartSetTuple__Group__0)
+		{ after(grammarAccess.getDatamartSetTupleAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleDatamartAggregationFunction
+entryRuleDatamartAggregationFunction
+:
+{ before(grammarAccess.getDatamartAggregationFunctionRule()); }
+	 ruleDatamartAggregationFunction
+{ after(grammarAccess.getDatamartAggregationFunctionRule()); } 
+	 EOF 
+;
+
+// Rule DatamartAggregationFunction
+ruleDatamartAggregationFunction 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getDatamartAggregationFunctionAccess().getAggregationAssignment()); }
+		(rule__DatamartAggregationFunction__AggregationAssignment)
+		{ after(grammarAccess.getDatamartAggregationFunctionAccess().getAggregationAssignment()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleDatamartAggregation
+entryRuleDatamartAggregation
+:
+{ before(grammarAccess.getDatamartAggregationRule()); }
+	 ruleDatamartAggregation
+{ after(grammarAccess.getDatamartAggregationRule()); } 
+	 EOF 
+;
+
+// Rule DatamartAggregation
+ruleDatamartAggregation 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getDatamartAggregationAccess().getGroup()); }
+		(rule__DatamartAggregation__Group__0)
+		{ after(grammarAccess.getDatamartAggregationAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleDatamartSetAggregation
+entryRuleDatamartSetAggregation
+:
+{ before(grammarAccess.getDatamartSetAggregationRule()); }
+	 ruleDatamartSetAggregation
+{ after(grammarAccess.getDatamartSetAggregationRule()); } 
+	 EOF 
+;
+
+// Rule DatamartSetAggregation
+ruleDatamartSetAggregation 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getDatamartSetAggregationAccess().getGroup()); }
+		(rule__DatamartSetAggregation__Group__0)
+		{ after(grammarAccess.getDatamartSetAggregationAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleDatamartSlicer
+entryRuleDatamartSlicer
+:
+{ before(grammarAccess.getDatamartSlicerRule()); }
+	 ruleDatamartSlicer
+{ after(grammarAccess.getDatamartSlicerRule()); } 
+	 EOF 
+;
+
+// Rule DatamartSlicer
+ruleDatamartSlicer 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getDatamartSlicerAccess().getGroup()); }
+		(rule__DatamartSlicer__Group__0)
+		{ after(grammarAccess.getDatamartSlicerAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleDatamartCubeAxis
+entryRuleDatamartCubeAxis
+:
+{ before(grammarAccess.getDatamartCubeAxisRule()); }
+	 ruleDatamartCubeAxis
+{ after(grammarAccess.getDatamartCubeAxisRule()); } 
+	 EOF 
+;
+
+// Rule DatamartCubeAxis
+ruleDatamartCubeAxis 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getDatamartCubeAxisAccess().getGroup()); }
+		(rule__DatamartCubeAxis__Group__0)
+		{ after(grammarAccess.getDatamartCubeAxisAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleDatamartElement
+entryRuleDatamartElement
+:
+{ before(grammarAccess.getDatamartElementRule()); }
+	 ruleDatamartElement
+{ after(grammarAccess.getDatamartElementRule()); } 
+	 EOF 
+;
+
+// Rule DatamartElement
+ruleDatamartElement 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getDatamartElementAccess().getAlternatives()); }
+		(rule__DatamartElement__Alternatives)
+		{ after(grammarAccess.getDatamartElementAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleDatamartDerivedMeasure
+entryRuleDatamartDerivedMeasure
+:
+{ before(grammarAccess.getDatamartDerivedMeasureRule()); }
+	 ruleDatamartDerivedMeasure
+{ after(grammarAccess.getDatamartDerivedMeasureRule()); } 
+	 EOF 
+;
+
+// Rule DatamartDerivedMeasure
+ruleDatamartDerivedMeasure 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getDatamartDerivedMeasureAccess().getGroup()); }
+		(rule__DatamartDerivedMeasure__Group__0)
+		{ after(grammarAccess.getDatamartDerivedMeasureAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleDatamartMeasure
+entryRuleDatamartMeasure
+:
+{ before(grammarAccess.getDatamartMeasureRule()); }
+	 ruleDatamartMeasure
+{ after(grammarAccess.getDatamartMeasureRule()); } 
+	 EOF 
+;
+
+// Rule DatamartMeasure
+ruleDatamartMeasure 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getDatamartMeasureAccess().getGroup()); }
+		(rule__DatamartMeasure__Group__0)
+		{ after(grammarAccess.getDatamartMeasureAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleDatamartHierarchy
+entryRuleDatamartHierarchy
+:
+{ before(grammarAccess.getDatamartHierarchyRule()); }
+	 ruleDatamartHierarchy
+{ after(grammarAccess.getDatamartHierarchyRule()); } 
+	 EOF 
+;
+
+// Rule DatamartHierarchy
+ruleDatamartHierarchy 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getDatamartHierarchyAccess().getGroup()); }
+		(rule__DatamartHierarchy__Group__0)
+		{ after(grammarAccess.getDatamartHierarchyAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleTRANSLATABLESTRING
+entryRuleTRANSLATABLESTRING
+:
+{ before(grammarAccess.getTRANSLATABLESTRINGRule()); }
+	 ruleTRANSLATABLESTRING
+{ after(grammarAccess.getTRANSLATABLESTRINGRule()); } 
+	 EOF 
+;
+
+// Rule TRANSLATABLESTRING
+ruleTRANSLATABLESTRING 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTRANSLATABLESTRINGAccess().getSTRINGTerminalRuleCall()); }
+		RULE_STRING
+		{ after(grammarAccess.getTRANSLATABLESTRINGAccess().getSTRINGTerminalRuleCall()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleTRANSLATABLEID
+entryRuleTRANSLATABLEID
+:
+{ before(grammarAccess.getTRANSLATABLEIDRule()); }
+	 ruleTRANSLATABLEID
+{ after(grammarAccess.getTRANSLATABLEIDRule()); } 
+	 EOF 
+;
+
+// Rule TRANSLATABLEID
+ruleTRANSLATABLEID 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTRANSLATABLEIDAccess().getIDTerminalRuleCall()); }
+		RULE_ID
+		{ after(grammarAccess.getTRANSLATABLEIDAccess().getIDTerminalRuleCall()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleAttributeFillerData
+entryRuleAttributeFillerData
+:
+{ before(grammarAccess.getAttributeFillerDataRule()); }
+	 ruleAttributeFillerData
+{ after(grammarAccess.getAttributeFillerDataRule()); } 
+	 EOF 
+;
+
+// Rule AttributeFillerData
+ruleAttributeFillerData 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getAttributeFillerDataAccess().getGroup()); }
+		(rule__AttributeFillerData__Group__0)
+		{ after(grammarAccess.getAttributeFillerDataAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleAttributeFillerType
+entryRuleAttributeFillerType
+:
+{ before(grammarAccess.getAttributeFillerTypeRule()); }
+	 ruleAttributeFillerType
+{ after(grammarAccess.getAttributeFillerTypeRule()); } 
+	 EOF 
+;
+
+// Rule AttributeFillerType
+ruleAttributeFillerType 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getAttributeFillerTypeAccess().getAlternatives()); }
+		(rule__AttributeFillerType__Alternatives)
+		{ after(grammarAccess.getAttributeFillerTypeAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleAttributeFillerDateFuture
+entryRuleAttributeFillerDateFuture
+:
+{ before(grammarAccess.getAttributeFillerDateFutureRule()); }
+	 ruleAttributeFillerDateFuture
+{ after(grammarAccess.getAttributeFillerDateFutureRule()); } 
+	 EOF 
+;
+
+// Rule AttributeFillerDateFuture
+ruleAttributeFillerDateFuture 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getAttributeFillerDateFutureAccess().getGroup()); }
+		(rule__AttributeFillerDateFuture__Group__0)
+		{ after(grammarAccess.getAttributeFillerDateFutureAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleAttributeFillerDatePast
+entryRuleAttributeFillerDatePast
+:
+{ before(grammarAccess.getAttributeFillerDatePastRule()); }
+	 ruleAttributeFillerDatePast
+{ after(grammarAccess.getAttributeFillerDatePastRule()); } 
+	 EOF 
+;
+
+// Rule AttributeFillerDatePast
+ruleAttributeFillerDatePast 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getAttributeFillerDatePastAccess().getGroup()); }
+		(rule__AttributeFillerDatePast__Group__0)
+		{ after(grammarAccess.getAttributeFillerDatePastAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleAttributeFillerDateRange
+entryRuleAttributeFillerDateRange
+:
+{ before(grammarAccess.getAttributeFillerDateRangeRule()); }
+	 ruleAttributeFillerDateRange
+{ after(grammarAccess.getAttributeFillerDateRangeRule()); } 
+	 EOF 
+;
+
+// Rule AttributeFillerDateRange
+ruleAttributeFillerDateRange 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getAttributeFillerDateRangeAccess().getGroup()); }
+		(rule__AttributeFillerDateRange__Group__0)
+		{ after(grammarAccess.getAttributeFillerDateRangeAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleAttributeFillerSignedDoubleRange
+entryRuleAttributeFillerSignedDoubleRange
+:
+{ before(grammarAccess.getAttributeFillerSignedDoubleRangeRule()); }
+	 ruleAttributeFillerSignedDoubleRange
+{ after(grammarAccess.getAttributeFillerSignedDoubleRangeRule()); } 
+	 EOF 
+;
+
+// Rule AttributeFillerSignedDoubleRange
+ruleAttributeFillerSignedDoubleRange 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getAttributeFillerSignedDoubleRangeAccess().getGroup()); }
+		(rule__AttributeFillerSignedDoubleRange__Group__0)
+		{ after(grammarAccess.getAttributeFillerSignedDoubleRangeAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleAttributeFillerSignedDoubleRandom
+entryRuleAttributeFillerSignedDoubleRandom
+:
+{ before(grammarAccess.getAttributeFillerSignedDoubleRandomRule()); }
+	 ruleAttributeFillerSignedDoubleRandom
+{ after(grammarAccess.getAttributeFillerSignedDoubleRandomRule()); } 
+	 EOF 
+;
+
+// Rule AttributeFillerSignedDoubleRandom
+ruleAttributeFillerSignedDoubleRandom 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getAttributeFillerSignedDoubleRandomAccess().getGroup()); }
+		(rule__AttributeFillerSignedDoubleRandom__Group__0)
+		{ after(grammarAccess.getAttributeFillerSignedDoubleRandomAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleAttributeFillerSignedIntegerRange
+entryRuleAttributeFillerSignedIntegerRange
+:
+{ before(grammarAccess.getAttributeFillerSignedIntegerRangeRule()); }
+	 ruleAttributeFillerSignedIntegerRange
+{ after(grammarAccess.getAttributeFillerSignedIntegerRangeRule()); } 
+	 EOF 
+;
+
+// Rule AttributeFillerSignedIntegerRange
+ruleAttributeFillerSignedIntegerRange 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getAttributeFillerSignedIntegerRangeAccess().getGroup()); }
+		(rule__AttributeFillerSignedIntegerRange__Group__0)
+		{ after(grammarAccess.getAttributeFillerSignedIntegerRangeAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleAttributeFillerSignedIntegerRandom
+entryRuleAttributeFillerSignedIntegerRandom
+:
+{ before(grammarAccess.getAttributeFillerSignedIntegerRandomRule()); }
+	 ruleAttributeFillerSignedIntegerRandom
+{ after(grammarAccess.getAttributeFillerSignedIntegerRandomRule()); } 
+	 EOF 
+;
+
+// Rule AttributeFillerSignedIntegerRandom
+ruleAttributeFillerSignedIntegerRandom 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getAttributeFillerSignedIntegerRandomAccess().getGroup()); }
+		(rule__AttributeFillerSignedIntegerRandom__Group__0)
+		{ after(grammarAccess.getAttributeFillerSignedIntegerRandomAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleAttributeFillerTextRandom
+entryRuleAttributeFillerTextRandom
+:
+{ before(grammarAccess.getAttributeFillerTextRandomRule()); }
+	 ruleAttributeFillerTextRandom
+{ after(grammarAccess.getAttributeFillerTextRandomRule()); } 
+	 EOF 
+;
+
+// Rule AttributeFillerTextRandom
+ruleAttributeFillerTextRandom 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getAttributeFillerTextRandomAccess().getGroup()); }
+		(rule__AttributeFillerTextRandom__Group__0)
+		{ after(grammarAccess.getAttributeFillerTextRandomAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleAttributeFillerTextParagraphs
+entryRuleAttributeFillerTextParagraphs
+:
+{ before(grammarAccess.getAttributeFillerTextParagraphsRule()); }
+	 ruleAttributeFillerTextParagraphs
+{ after(grammarAccess.getAttributeFillerTextParagraphsRule()); } 
+	 EOF 
+;
+
+// Rule AttributeFillerTextParagraphs
+ruleAttributeFillerTextParagraphs 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getAttributeFillerTextParagraphsAccess().getGroup()); }
+		(rule__AttributeFillerTextParagraphs__Group__0)
+		{ after(grammarAccess.getAttributeFillerTextParagraphsAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleAttributeFillerTextSentences
+entryRuleAttributeFillerTextSentences
+:
+{ before(grammarAccess.getAttributeFillerTextSentencesRule()); }
+	 ruleAttributeFillerTextSentences
+{ after(grammarAccess.getAttributeFillerTextSentencesRule()); } 
+	 EOF 
+;
+
+// Rule AttributeFillerTextSentences
+ruleAttributeFillerTextSentences 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getAttributeFillerTextSentencesAccess().getGroup()); }
+		(rule__AttributeFillerTextSentences__Group__0)
+		{ after(grammarAccess.getAttributeFillerTextSentencesAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleAttributeFillerTextWords
+entryRuleAttributeFillerTextWords
+:
+{ before(grammarAccess.getAttributeFillerTextWordsRule()); }
+	 ruleAttributeFillerTextWords
+{ after(grammarAccess.getAttributeFillerTextWordsRule()); } 
+	 EOF 
+;
+
+// Rule AttributeFillerTextWords
+ruleAttributeFillerTextWords 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getAttributeFillerTextWordsAccess().getGroup()); }
+		(rule__AttributeFillerTextWords__Group__0)
+		{ after(grammarAccess.getAttributeFillerTextWordsAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleAttributeFillerUnsignedDoubleRange
+entryRuleAttributeFillerUnsignedDoubleRange
+:
+{ before(grammarAccess.getAttributeFillerUnsignedDoubleRangeRule()); }
+	 ruleAttributeFillerUnsignedDoubleRange
+{ after(grammarAccess.getAttributeFillerUnsignedDoubleRangeRule()); } 
+	 EOF 
+;
+
+// Rule AttributeFillerUnsignedDoubleRange
+ruleAttributeFillerUnsignedDoubleRange 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getAttributeFillerUnsignedDoubleRangeAccess().getGroup()); }
+		(rule__AttributeFillerUnsignedDoubleRange__Group__0)
+		{ after(grammarAccess.getAttributeFillerUnsignedDoubleRangeAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleAttributeFillerUnsignedDoubleRandom
+entryRuleAttributeFillerUnsignedDoubleRandom
+:
+{ before(grammarAccess.getAttributeFillerUnsignedDoubleRandomRule()); }
+	 ruleAttributeFillerUnsignedDoubleRandom
+{ after(grammarAccess.getAttributeFillerUnsignedDoubleRandomRule()); } 
+	 EOF 
+;
+
+// Rule AttributeFillerUnsignedDoubleRandom
+ruleAttributeFillerUnsignedDoubleRandom 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getAttributeFillerUnsignedDoubleRandomAccess().getGroup()); }
+		(rule__AttributeFillerUnsignedDoubleRandom__Group__0)
+		{ after(grammarAccess.getAttributeFillerUnsignedDoubleRandomAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleAttributeFillerUnsignedIntegerRange
+entryRuleAttributeFillerUnsignedIntegerRange
+:
+{ before(grammarAccess.getAttributeFillerUnsignedIntegerRangeRule()); }
+	 ruleAttributeFillerUnsignedIntegerRange
+{ after(grammarAccess.getAttributeFillerUnsignedIntegerRangeRule()); } 
+	 EOF 
+;
+
+// Rule AttributeFillerUnsignedIntegerRange
+ruleAttributeFillerUnsignedIntegerRange 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getAttributeFillerUnsignedIntegerRangeAccess().getGroup()); }
+		(rule__AttributeFillerUnsignedIntegerRange__Group__0)
+		{ after(grammarAccess.getAttributeFillerUnsignedIntegerRangeAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleAttributeFillerUnsignedIntegerRandom
+entryRuleAttributeFillerUnsignedIntegerRandom
+:
+{ before(grammarAccess.getAttributeFillerUnsignedIntegerRandomRule()); }
+	 ruleAttributeFillerUnsignedIntegerRandom
+{ after(grammarAccess.getAttributeFillerUnsignedIntegerRandomRule()); } 
+	 EOF 
+;
+
+// Rule AttributeFillerUnsignedIntegerRandom
+ruleAttributeFillerUnsignedIntegerRandom 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getAttributeFillerUnsignedIntegerRandomAccess().getGroup()); }
+		(rule__AttributeFillerUnsignedIntegerRandom__Group__0)
+		{ after(grammarAccess.getAttributeFillerUnsignedIntegerRandomAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleSignedNumber
+entryRuleSignedNumber
+:
+{ before(grammarAccess.getSignedNumberRule()); }
+	 ruleSignedNumber
+{ after(grammarAccess.getSignedNumberRule()); } 
+	 EOF 
+;
+
+// Rule SignedNumber
+ruleSignedNumber 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getSignedNumberAccess().getGroup()); }
+		(rule__SignedNumber__Group__0)
+		{ after(grammarAccess.getSignedNumberAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleUnsignedNumber
+entryRuleUnsignedNumber
+:
+{ before(grammarAccess.getUnsignedNumberRule()); }
+	 ruleUnsignedNumber
+{ after(grammarAccess.getUnsignedNumberRule()); } 
+	 EOF 
+;
+
+// Rule UnsignedNumber
+ruleUnsignedNumber 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getUnsignedNumberAccess().getGroup()); }
+		(rule__UnsignedNumber__Group__0)
+		{ after(grammarAccess.getUnsignedNumberAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleSINT
+entryRuleSINT
+:
+{ before(grammarAccess.getSINTRule()); }
+	 ruleSINT
+{ after(grammarAccess.getSINTRule()); } 
+	 EOF 
+;
+
+// Rule SINT
+ruleSINT 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getSINTAccess().getGroup()); }
+		(rule__SINT__Group__0)
+		{ after(grammarAccess.getSINTAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXImportDeclaration
+entryRuleXImportDeclaration
+:
+{ before(grammarAccess.getXImportDeclarationRule()); }
+	 ruleXImportDeclaration
+{ after(grammarAccess.getXImportDeclarationRule()); } 
+	 EOF 
+;
+
+// Rule XImportDeclaration
+ruleXImportDeclaration 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getXImportDeclarationAccess().getGroup()); }
+		(rule__XImportDeclaration__Group__0)
+		{ after(grammarAccess.getXImportDeclarationAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXAnnotation
+entryRuleXAnnotation
+:
+{ before(grammarAccess.getXAnnotationRule()); }
+	 ruleXAnnotation
+{ after(grammarAccess.getXAnnotationRule()); } 
+	 EOF 
+;
+
+// Rule XAnnotation
+ruleXAnnotation 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getXAnnotationAccess().getGroup()); }
+		(rule__XAnnotation__Group__0)
+		{ after(grammarAccess.getXAnnotationAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXAnnotationElementValuePair
+entryRuleXAnnotationElementValuePair
+:
+{ before(grammarAccess.getXAnnotationElementValuePairRule()); }
+	 ruleXAnnotationElementValuePair
+{ after(grammarAccess.getXAnnotationElementValuePairRule()); } 
+	 EOF 
+;
+
+// Rule XAnnotationElementValuePair
+ruleXAnnotationElementValuePair 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getXAnnotationElementValuePairAccess().getGroup()); }
+		(rule__XAnnotationElementValuePair__Group__0)
+		{ after(grammarAccess.getXAnnotationElementValuePairAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXAnnotationElementValueOrCommaList
+entryRuleXAnnotationElementValueOrCommaList
+:
+{ before(grammarAccess.getXAnnotationElementValueOrCommaListRule()); }
+	 ruleXAnnotationElementValueOrCommaList
+{ after(grammarAccess.getXAnnotationElementValueOrCommaListRule()); } 
+	 EOF 
+;
+
+// Rule XAnnotationElementValueOrCommaList
+ruleXAnnotationElementValueOrCommaList 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getAlternatives()); }
+		(rule__XAnnotationElementValueOrCommaList__Alternatives)
+		{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXAnnotationElementValue
+entryRuleXAnnotationElementValue
+:
+{ before(grammarAccess.getXAnnotationElementValueRule()); }
+	 ruleXAnnotationElementValue
+{ after(grammarAccess.getXAnnotationElementValueRule()); } 
+	 EOF 
+;
+
+// Rule XAnnotationElementValue
+ruleXAnnotationElementValue 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getXAnnotationElementValueAccess().getAlternatives()); }
+		(rule__XAnnotationElementValue__Alternatives)
+		{ after(grammarAccess.getXAnnotationElementValueAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXAnnotationOrExpression
+entryRuleXAnnotationOrExpression
+:
+{ before(grammarAccess.getXAnnotationOrExpressionRule()); }
+	 ruleXAnnotationOrExpression
+{ after(grammarAccess.getXAnnotationOrExpressionRule()); } 
+	 EOF 
+;
+
+// Rule XAnnotationOrExpression
+ruleXAnnotationOrExpression 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getXAnnotationOrExpressionAccess().getAlternatives()); }
+		(rule__XAnnotationOrExpression__Alternatives)
+		{ after(grammarAccess.getXAnnotationOrExpressionAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXExpression
+entryRuleXExpression
+:
+{ before(grammarAccess.getXExpressionRule()); }
+	 ruleXExpression
+{ after(grammarAccess.getXExpressionRule()); } 
+	 EOF 
+;
+
+// Rule XExpression
+ruleXExpression 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getXExpressionAccess().getXAssignmentParserRuleCall()); }
+		ruleXAssignment
+		{ after(grammarAccess.getXExpressionAccess().getXAssignmentParserRuleCall()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXAssignment
+entryRuleXAssignment
+:
+{ before(grammarAccess.getXAssignmentRule()); }
+	 ruleXAssignment
+{ after(grammarAccess.getXAssignmentRule()); } 
+	 EOF 
+;
+
+// Rule XAssignment
+ruleXAssignment 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getXAssignmentAccess().getAlternatives()); }
+		(rule__XAssignment__Alternatives)
+		{ after(grammarAccess.getXAssignmentAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpSingleAssign
+entryRuleOpSingleAssign
+:
+{ before(grammarAccess.getOpSingleAssignRule()); }
+	 ruleOpSingleAssign
+{ after(grammarAccess.getOpSingleAssignRule()); } 
+	 EOF 
+;
+
+// Rule OpSingleAssign
+ruleOpSingleAssign 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getOpSingleAssignAccess().getEqualsSignKeyword()); }
+		'='
+		{ after(grammarAccess.getOpSingleAssignAccess().getEqualsSignKeyword()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpMultiAssign
+entryRuleOpMultiAssign
+:
+{ before(grammarAccess.getOpMultiAssignRule()); }
+	 ruleOpMultiAssign
+{ after(grammarAccess.getOpMultiAssignRule()); } 
+	 EOF 
+;
+
+// Rule OpMultiAssign
+ruleOpMultiAssign 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getOpMultiAssignAccess().getAlternatives()); }
+		(rule__OpMultiAssign__Alternatives)
+		{ after(grammarAccess.getOpMultiAssignAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXOrExpression
+entryRuleXOrExpression
+:
+{ before(grammarAccess.getXOrExpressionRule()); }
+	 ruleXOrExpression
+{ after(grammarAccess.getXOrExpressionRule()); } 
+	 EOF 
+;
+
+// Rule XOrExpression
+ruleXOrExpression 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getXOrExpressionAccess().getGroup()); }
+		(rule__XOrExpression__Group__0)
+		{ after(grammarAccess.getXOrExpressionAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpOr
+entryRuleOpOr
+:
+{ before(grammarAccess.getOpOrRule()); }
+	 ruleOpOr
+{ after(grammarAccess.getOpOrRule()); } 
+	 EOF 
+;
+
+// Rule OpOr
+ruleOpOr 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getOpOrAccess().getVerticalLineVerticalLineKeyword()); }
+		'||'
+		{ after(grammarAccess.getOpOrAccess().getVerticalLineVerticalLineKeyword()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXAndExpression
+entryRuleXAndExpression
+:
+{ before(grammarAccess.getXAndExpressionRule()); }
+	 ruleXAndExpression
+{ after(grammarAccess.getXAndExpressionRule()); } 
+	 EOF 
+;
+
+// Rule XAndExpression
+ruleXAndExpression 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getXAndExpressionAccess().getGroup()); }
+		(rule__XAndExpression__Group__0)
+		{ after(grammarAccess.getXAndExpressionAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpAnd
+entryRuleOpAnd
+:
+{ before(grammarAccess.getOpAndRule()); }
+	 ruleOpAnd
+{ after(grammarAccess.getOpAndRule()); } 
+	 EOF 
+;
+
+// Rule OpAnd
+ruleOpAnd 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getOpAndAccess().getAmpersandAmpersandKeyword()); }
+		'&&'
+		{ after(grammarAccess.getOpAndAccess().getAmpersandAmpersandKeyword()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXEqualityExpression
+entryRuleXEqualityExpression
+:
+{ before(grammarAccess.getXEqualityExpressionRule()); }
+	 ruleXEqualityExpression
+{ after(grammarAccess.getXEqualityExpressionRule()); } 
+	 EOF 
+;
+
+// Rule XEqualityExpression
+ruleXEqualityExpression 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getXEqualityExpressionAccess().getGroup()); }
+		(rule__XEqualityExpression__Group__0)
+		{ after(grammarAccess.getXEqualityExpressionAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpEquality
+entryRuleOpEquality
+:
+{ before(grammarAccess.getOpEqualityRule()); }
+	 ruleOpEquality
+{ after(grammarAccess.getOpEqualityRule()); } 
+	 EOF 
+;
+
+// Rule OpEquality
+ruleOpEquality 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getOpEqualityAccess().getAlternatives()); }
+		(rule__OpEquality__Alternatives)
+		{ after(grammarAccess.getOpEqualityAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXRelationalExpression
+entryRuleXRelationalExpression
+:
+{ before(grammarAccess.getXRelationalExpressionRule()); }
+	 ruleXRelationalExpression
+{ after(grammarAccess.getXRelationalExpressionRule()); } 
+	 EOF 
+;
+
+// Rule XRelationalExpression
+ruleXRelationalExpression 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getXRelationalExpressionAccess().getGroup()); }
+		(rule__XRelationalExpression__Group__0)
+		{ after(grammarAccess.getXRelationalExpressionAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpCompare
+entryRuleOpCompare
+:
+{ before(grammarAccess.getOpCompareRule()); }
+	 ruleOpCompare
+{ after(grammarAccess.getOpCompareRule()); } 
+	 EOF 
+;
+
+// Rule OpCompare
+ruleOpCompare 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getOpCompareAccess().getAlternatives()); }
+		(rule__OpCompare__Alternatives)
+		{ after(grammarAccess.getOpCompareAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXOtherOperatorExpression
+entryRuleXOtherOperatorExpression
+:
+{ before(grammarAccess.getXOtherOperatorExpressionRule()); }
+	 ruleXOtherOperatorExpression
+{ after(grammarAccess.getXOtherOperatorExpressionRule()); } 
+	 EOF 
+;
+
+// Rule XOtherOperatorExpression
+ruleXOtherOperatorExpression 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup()); }
+		(rule__XOtherOperatorExpression__Group__0)
+		{ after(grammarAccess.getXOtherOperatorExpressionAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpOther
+entryRuleOpOther
+:
+{ before(grammarAccess.getOpOtherRule()); }
+	 ruleOpOther
+{ after(grammarAccess.getOpOtherRule()); } 
+	 EOF 
+;
+
+// Rule OpOther
+ruleOpOther 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getOpOtherAccess().getAlternatives()); }
+		(rule__OpOther__Alternatives)
+		{ after(grammarAccess.getOpOtherAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXAdditiveExpression
+entryRuleXAdditiveExpression
+:
+{ before(grammarAccess.getXAdditiveExpressionRule()); }
+	 ruleXAdditiveExpression
+{ after(grammarAccess.getXAdditiveExpressionRule()); } 
+	 EOF 
+;
+
+// Rule XAdditiveExpression
+ruleXAdditiveExpression 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getXAdditiveExpressionAccess().getGroup()); }
+		(rule__XAdditiveExpression__Group__0)
+		{ after(grammarAccess.getXAdditiveExpressionAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpAdd
+entryRuleOpAdd
+:
+{ before(grammarAccess.getOpAddRule()); }
+	 ruleOpAdd
+{ after(grammarAccess.getOpAddRule()); } 
+	 EOF 
+;
+
+// Rule OpAdd
+ruleOpAdd 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getOpAddAccess().getAlternatives()); }
+		(rule__OpAdd__Alternatives)
+		{ after(grammarAccess.getOpAddAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXMultiplicativeExpression
+entryRuleXMultiplicativeExpression
+:
+{ before(grammarAccess.getXMultiplicativeExpressionRule()); }
+	 ruleXMultiplicativeExpression
+{ after(grammarAccess.getXMultiplicativeExpressionRule()); } 
+	 EOF 
+;
+
+// Rule XMultiplicativeExpression
+ruleXMultiplicativeExpression 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup()); }
+		(rule__XMultiplicativeExpression__Group__0)
+		{ after(grammarAccess.getXMultiplicativeExpressionAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpMulti
+entryRuleOpMulti
+:
+{ before(grammarAccess.getOpMultiRule()); }
+	 ruleOpMulti
+{ after(grammarAccess.getOpMultiRule()); } 
+	 EOF 
+;
+
+// Rule OpMulti
+ruleOpMulti 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getOpMultiAccess().getAlternatives()); }
+		(rule__OpMulti__Alternatives)
+		{ after(grammarAccess.getOpMultiAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXUnaryOperation
+entryRuleXUnaryOperation
+:
+{ before(grammarAccess.getXUnaryOperationRule()); }
+	 ruleXUnaryOperation
+{ after(grammarAccess.getXUnaryOperationRule()); } 
+	 EOF 
+;
+
+// Rule XUnaryOperation
+ruleXUnaryOperation 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getXUnaryOperationAccess().getAlternatives()); }
+		(rule__XUnaryOperation__Alternatives)
+		{ after(grammarAccess.getXUnaryOperationAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpUnary
+entryRuleOpUnary
+:
+{ before(grammarAccess.getOpUnaryRule()); }
+	 ruleOpUnary
+{ after(grammarAccess.getOpUnaryRule()); } 
+	 EOF 
+;
+
+// Rule OpUnary
+ruleOpUnary 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getOpUnaryAccess().getAlternatives()); }
+		(rule__OpUnary__Alternatives)
+		{ after(grammarAccess.getOpUnaryAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXCastedExpression
+entryRuleXCastedExpression
+:
+{ before(grammarAccess.getXCastedExpressionRule()); }
+	 ruleXCastedExpression
+{ after(grammarAccess.getXCastedExpressionRule()); } 
+	 EOF 
+;
+
+// Rule XCastedExpression
+ruleXCastedExpression 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getXCastedExpressionAccess().getGroup()); }
+		(rule__XCastedExpression__Group__0)
+		{ after(grammarAccess.getXCastedExpressionAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXPostfixOperation
+entryRuleXPostfixOperation
+:
+{ before(grammarAccess.getXPostfixOperationRule()); }
+	 ruleXPostfixOperation
+{ after(grammarAccess.getXPostfixOperationRule()); } 
+	 EOF 
+;
+
+// Rule XPostfixOperation
+ruleXPostfixOperation 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getXPostfixOperationAccess().getGroup()); }
+		(rule__XPostfixOperation__Group__0)
+		{ after(grammarAccess.getXPostfixOperationAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpPostfix
+entryRuleOpPostfix
+:
+{ before(grammarAccess.getOpPostfixRule()); }
+	 ruleOpPostfix
+{ after(grammarAccess.getOpPostfixRule()); } 
+	 EOF 
+;
+
+// Rule OpPostfix
+ruleOpPostfix 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getOpPostfixAccess().getAlternatives()); }
+		(rule__OpPostfix__Alternatives)
+		{ after(grammarAccess.getOpPostfixAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXMemberFeatureCall
+entryRuleXMemberFeatureCall
+:
+{ before(grammarAccess.getXMemberFeatureCallRule()); }
+	 ruleXMemberFeatureCall
+{ after(grammarAccess.getXMemberFeatureCallRule()); } 
+	 EOF 
+;
+
+// Rule XMemberFeatureCall
+ruleXMemberFeatureCall 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getXMemberFeatureCallAccess().getGroup()); }
+		(rule__XMemberFeatureCall__Group__0)
+		{ after(grammarAccess.getXMemberFeatureCallAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXPrimaryExpression
+entryRuleXPrimaryExpression
+:
+{ before(grammarAccess.getXPrimaryExpressionRule()); }
+	 ruleXPrimaryExpression
+{ after(grammarAccess.getXPrimaryExpressionRule()); } 
+	 EOF 
+;
+
+// Rule XPrimaryExpression
+ruleXPrimaryExpression 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getXPrimaryExpressionAccess().getAlternatives()); }
+		(rule__XPrimaryExpression__Alternatives)
+		{ after(grammarAccess.getXPrimaryExpressionAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXLiteral
+entryRuleXLiteral
+:
+{ before(grammarAccess.getXLiteralRule()); }
+	 ruleXLiteral
+{ after(grammarAccess.getXLiteralRule()); } 
+	 EOF 
+;
+
+// Rule XLiteral
+ruleXLiteral 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getXLiteralAccess().getAlternatives()); }
+		(rule__XLiteral__Alternatives)
+		{ after(grammarAccess.getXLiteralAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXCollectionLiteral
+entryRuleXCollectionLiteral
+:
+{ before(grammarAccess.getXCollectionLiteralRule()); }
+	 ruleXCollectionLiteral
+{ after(grammarAccess.getXCollectionLiteralRule()); } 
+	 EOF 
+;
+
+// Rule XCollectionLiteral
+ruleXCollectionLiteral 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getXCollectionLiteralAccess().getAlternatives()); }
+		(rule__XCollectionLiteral__Alternatives)
+		{ after(grammarAccess.getXCollectionLiteralAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXSetLiteral
+entryRuleXSetLiteral
+:
+{ before(grammarAccess.getXSetLiteralRule()); }
+	 ruleXSetLiteral
+{ after(grammarAccess.getXSetLiteralRule()); } 
+	 EOF 
+;
+
+// Rule XSetLiteral
+ruleXSetLiteral 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getXSetLiteralAccess().getGroup()); }
+		(rule__XSetLiteral__Group__0)
+		{ after(grammarAccess.getXSetLiteralAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXListLiteral
+entryRuleXListLiteral
+:
+{ before(grammarAccess.getXListLiteralRule()); }
+	 ruleXListLiteral
+{ after(grammarAccess.getXListLiteralRule()); } 
+	 EOF 
+;
+
+// Rule XListLiteral
+ruleXListLiteral 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getXListLiteralAccess().getGroup()); }
+		(rule__XListLiteral__Group__0)
+		{ after(grammarAccess.getXListLiteralAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXClosure
+entryRuleXClosure
+:
+{ before(grammarAccess.getXClosureRule()); }
+	 ruleXClosure
+{ after(grammarAccess.getXClosureRule()); } 
+	 EOF 
+;
+
+// Rule XClosure
+ruleXClosure 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getXClosureAccess().getGroup()); }
+		(rule__XClosure__Group__0)
+		{ after(grammarAccess.getXClosureAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXExpressionInClosure
+entryRuleXExpressionInClosure
+:
+{ before(grammarAccess.getXExpressionInClosureRule()); }
+	 ruleXExpressionInClosure
+{ after(grammarAccess.getXExpressionInClosureRule()); } 
+	 EOF 
+;
+
+// Rule XExpressionInClosure
+ruleXExpressionInClosure 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getXExpressionInClosureAccess().getGroup()); }
+		(rule__XExpressionInClosure__Group__0)
+		{ after(grammarAccess.getXExpressionInClosureAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXShortClosure
+entryRuleXShortClosure
+:
+{ before(grammarAccess.getXShortClosureRule()); }
+	 ruleXShortClosure
+{ after(grammarAccess.getXShortClosureRule()); } 
+	 EOF 
+;
+
+// Rule XShortClosure
+ruleXShortClosure 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getXShortClosureAccess().getGroup()); }
+		(rule__XShortClosure__Group__0)
+		{ after(grammarAccess.getXShortClosureAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXParenthesizedExpression
+entryRuleXParenthesizedExpression
+:
+{ before(grammarAccess.getXParenthesizedExpressionRule()); }
+	 ruleXParenthesizedExpression
+{ after(grammarAccess.getXParenthesizedExpressionRule()); } 
+	 EOF 
+;
+
+// Rule XParenthesizedExpression
+ruleXParenthesizedExpression 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getXParenthesizedExpressionAccess().getGroup()); }
+		(rule__XParenthesizedExpression__Group__0)
+		{ after(grammarAccess.getXParenthesizedExpressionAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXIfExpression
+entryRuleXIfExpression
+:
+{ before(grammarAccess.getXIfExpressionRule()); }
+	 ruleXIfExpression
+{ after(grammarAccess.getXIfExpressionRule()); } 
+	 EOF 
+;
+
+// Rule XIfExpression
+ruleXIfExpression 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getXIfExpressionAccess().getGroup()); }
+		(rule__XIfExpression__Group__0)
+		{ after(grammarAccess.getXIfExpressionAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXSwitchExpression
+entryRuleXSwitchExpression
+:
+{ before(grammarAccess.getXSwitchExpressionRule()); }
+	 ruleXSwitchExpression
+{ after(grammarAccess.getXSwitchExpressionRule()); } 
+	 EOF 
+;
+
+// Rule XSwitchExpression
+ruleXSwitchExpression 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getXSwitchExpressionAccess().getGroup()); }
+		(rule__XSwitchExpression__Group__0)
+		{ after(grammarAccess.getXSwitchExpressionAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXCasePart
+entryRuleXCasePart
+:
+{ before(grammarAccess.getXCasePartRule()); }
+	 ruleXCasePart
+{ after(grammarAccess.getXCasePartRule()); } 
+	 EOF 
+;
+
+// Rule XCasePart
+ruleXCasePart 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getXCasePartAccess().getGroup()); }
+		(rule__XCasePart__Group__0)
+		{ after(grammarAccess.getXCasePartAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXForLoopExpression
+entryRuleXForLoopExpression
+:
+{ before(grammarAccess.getXForLoopExpressionRule()); }
+	 ruleXForLoopExpression
+{ after(grammarAccess.getXForLoopExpressionRule()); } 
+	 EOF 
+;
+
+// Rule XForLoopExpression
+ruleXForLoopExpression 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getXForLoopExpressionAccess().getGroup()); }
+		(rule__XForLoopExpression__Group__0)
+		{ after(grammarAccess.getXForLoopExpressionAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXBasicForLoopExpression
+entryRuleXBasicForLoopExpression
+:
+{ before(grammarAccess.getXBasicForLoopExpressionRule()); }
+	 ruleXBasicForLoopExpression
+{ after(grammarAccess.getXBasicForLoopExpressionRule()); } 
+	 EOF 
+;
+
+// Rule XBasicForLoopExpression
+ruleXBasicForLoopExpression 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup()); }
+		(rule__XBasicForLoopExpression__Group__0)
+		{ after(grammarAccess.getXBasicForLoopExpressionAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXWhileExpression
+entryRuleXWhileExpression
+:
+{ before(grammarAccess.getXWhileExpressionRule()); }
+	 ruleXWhileExpression
+{ after(grammarAccess.getXWhileExpressionRule()); } 
+	 EOF 
+;
+
+// Rule XWhileExpression
+ruleXWhileExpression 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getXWhileExpressionAccess().getGroup()); }
+		(rule__XWhileExpression__Group__0)
+		{ after(grammarAccess.getXWhileExpressionAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXDoWhileExpression
+entryRuleXDoWhileExpression
+:
+{ before(grammarAccess.getXDoWhileExpressionRule()); }
+	 ruleXDoWhileExpression
+{ after(grammarAccess.getXDoWhileExpressionRule()); } 
+	 EOF 
+;
+
+// Rule XDoWhileExpression
+ruleXDoWhileExpression 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getXDoWhileExpressionAccess().getGroup()); }
+		(rule__XDoWhileExpression__Group__0)
+		{ after(grammarAccess.getXDoWhileExpressionAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXBlockExpression
+entryRuleXBlockExpression
+:
+{ before(grammarAccess.getXBlockExpressionRule()); }
+	 ruleXBlockExpression
+{ after(grammarAccess.getXBlockExpressionRule()); } 
+	 EOF 
+;
+
+// Rule XBlockExpression
+ruleXBlockExpression 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getXBlockExpressionAccess().getGroup()); }
+		(rule__XBlockExpression__Group__0)
+		{ after(grammarAccess.getXBlockExpressionAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXExpressionOrVarDeclaration
+entryRuleXExpressionOrVarDeclaration
+:
+{ before(grammarAccess.getXExpressionOrVarDeclarationRule()); }
+	 ruleXExpressionOrVarDeclaration
+{ after(grammarAccess.getXExpressionOrVarDeclarationRule()); } 
+	 EOF 
+;
+
+// Rule XExpressionOrVarDeclaration
+ruleXExpressionOrVarDeclaration 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getXExpressionOrVarDeclarationAccess().getAlternatives()); }
+		(rule__XExpressionOrVarDeclaration__Alternatives)
+		{ after(grammarAccess.getXExpressionOrVarDeclarationAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXVariableDeclaration
+entryRuleXVariableDeclaration
+:
+{ before(grammarAccess.getXVariableDeclarationRule()); }
+	 ruleXVariableDeclaration
+{ after(grammarAccess.getXVariableDeclarationRule()); } 
+	 EOF 
+;
+
+// Rule XVariableDeclaration
+ruleXVariableDeclaration 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getXVariableDeclarationAccess().getGroup()); }
+		(rule__XVariableDeclaration__Group__0)
+		{ after(grammarAccess.getXVariableDeclarationAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleJvmFormalParameter
+entryRuleJvmFormalParameter
+:
+{ before(grammarAccess.getJvmFormalParameterRule()); }
+	 ruleJvmFormalParameter
+{ after(grammarAccess.getJvmFormalParameterRule()); } 
+	 EOF 
+;
+
+// Rule JvmFormalParameter
+ruleJvmFormalParameter 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getJvmFormalParameterAccess().getGroup()); }
+		(rule__JvmFormalParameter__Group__0)
+		{ after(grammarAccess.getJvmFormalParameterAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleFullJvmFormalParameter
+entryRuleFullJvmFormalParameter
+:
+{ before(grammarAccess.getFullJvmFormalParameterRule()); }
+	 ruleFullJvmFormalParameter
+{ after(grammarAccess.getFullJvmFormalParameterRule()); } 
+	 EOF 
+;
+
+// Rule FullJvmFormalParameter
+ruleFullJvmFormalParameter 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getFullJvmFormalParameterAccess().getGroup()); }
+		(rule__FullJvmFormalParameter__Group__0)
+		{ after(grammarAccess.getFullJvmFormalParameterAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXFeatureCall
+entryRuleXFeatureCall
+:
+{ before(grammarAccess.getXFeatureCallRule()); }
+	 ruleXFeatureCall
+{ after(grammarAccess.getXFeatureCallRule()); } 
+	 EOF 
+;
+
+// Rule XFeatureCall
+ruleXFeatureCall 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getXFeatureCallAccess().getGroup()); }
+		(rule__XFeatureCall__Group__0)
+		{ after(grammarAccess.getXFeatureCallAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleFeatureCallID
+entryRuleFeatureCallID
+:
+{ before(grammarAccess.getFeatureCallIDRule()); }
+	 ruleFeatureCallID
+{ after(grammarAccess.getFeatureCallIDRule()); } 
+	 EOF 
+;
+
+// Rule FeatureCallID
+ruleFeatureCallID 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getFeatureCallIDAccess().getAlternatives()); }
+		(rule__FeatureCallID__Alternatives)
+		{ after(grammarAccess.getFeatureCallIDAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleIdOrSuper
+entryRuleIdOrSuper
+:
+{ before(grammarAccess.getIdOrSuperRule()); }
+	 ruleIdOrSuper
+{ after(grammarAccess.getIdOrSuperRule()); } 
+	 EOF 
+;
+
+// Rule IdOrSuper
+ruleIdOrSuper 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getIdOrSuperAccess().getAlternatives()); }
+		(rule__IdOrSuper__Alternatives)
+		{ after(grammarAccess.getIdOrSuperAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXConstructorCall
+entryRuleXConstructorCall
+:
+{ before(grammarAccess.getXConstructorCallRule()); }
+	 ruleXConstructorCall
+{ after(grammarAccess.getXConstructorCallRule()); } 
+	 EOF 
+;
+
+// Rule XConstructorCall
+ruleXConstructorCall 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getXConstructorCallAccess().getGroup()); }
+		(rule__XConstructorCall__Group__0)
+		{ after(grammarAccess.getXConstructorCallAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXBooleanLiteral
+entryRuleXBooleanLiteral
+:
+{ before(grammarAccess.getXBooleanLiteralRule()); }
+	 ruleXBooleanLiteral
+{ after(grammarAccess.getXBooleanLiteralRule()); } 
+	 EOF 
+;
+
+// Rule XBooleanLiteral
+ruleXBooleanLiteral 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getXBooleanLiteralAccess().getGroup()); }
+		(rule__XBooleanLiteral__Group__0)
+		{ after(grammarAccess.getXBooleanLiteralAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXNullLiteral
+entryRuleXNullLiteral
+:
+{ before(grammarAccess.getXNullLiteralRule()); }
+	 ruleXNullLiteral
+{ after(grammarAccess.getXNullLiteralRule()); } 
+	 EOF 
+;
+
+// Rule XNullLiteral
+ruleXNullLiteral 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getXNullLiteralAccess().getGroup()); }
+		(rule__XNullLiteral__Group__0)
+		{ after(grammarAccess.getXNullLiteralAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXNumberLiteral
+entryRuleXNumberLiteral
+:
+{ before(grammarAccess.getXNumberLiteralRule()); }
+	 ruleXNumberLiteral
+{ after(grammarAccess.getXNumberLiteralRule()); } 
+	 EOF 
+;
+
+// Rule XNumberLiteral
+ruleXNumberLiteral 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getXNumberLiteralAccess().getGroup()); }
+		(rule__XNumberLiteral__Group__0)
+		{ after(grammarAccess.getXNumberLiteralAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXStringLiteral
+entryRuleXStringLiteral
+:
+{ before(grammarAccess.getXStringLiteralRule()); }
+	 ruleXStringLiteral
+{ after(grammarAccess.getXStringLiteralRule()); } 
+	 EOF 
+;
+
+// Rule XStringLiteral
+ruleXStringLiteral 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getXStringLiteralAccess().getGroup()); }
+		(rule__XStringLiteral__Group__0)
+		{ after(grammarAccess.getXStringLiteralAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXTypeLiteral
+entryRuleXTypeLiteral
+:
+{ before(grammarAccess.getXTypeLiteralRule()); }
+	 ruleXTypeLiteral
+{ after(grammarAccess.getXTypeLiteralRule()); } 
+	 EOF 
+;
+
+// Rule XTypeLiteral
+ruleXTypeLiteral 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getXTypeLiteralAccess().getGroup()); }
+		(rule__XTypeLiteral__Group__0)
+		{ after(grammarAccess.getXTypeLiteralAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXThrowExpression
+entryRuleXThrowExpression
+:
+{ before(grammarAccess.getXThrowExpressionRule()); }
+	 ruleXThrowExpression
+{ after(grammarAccess.getXThrowExpressionRule()); } 
+	 EOF 
+;
+
+// Rule XThrowExpression
+ruleXThrowExpression 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getXThrowExpressionAccess().getGroup()); }
+		(rule__XThrowExpression__Group__0)
+		{ after(grammarAccess.getXThrowExpressionAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXReturnExpression
+entryRuleXReturnExpression
+:
+{ before(grammarAccess.getXReturnExpressionRule()); }
+	 ruleXReturnExpression
+{ after(grammarAccess.getXReturnExpressionRule()); } 
+	 EOF 
+;
+
+// Rule XReturnExpression
+ruleXReturnExpression 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getXReturnExpressionAccess().getGroup()); }
+		(rule__XReturnExpression__Group__0)
+		{ after(grammarAccess.getXReturnExpressionAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXTryCatchFinallyExpression
+entryRuleXTryCatchFinallyExpression
+:
+{ before(grammarAccess.getXTryCatchFinallyExpressionRule()); }
+	 ruleXTryCatchFinallyExpression
+{ after(grammarAccess.getXTryCatchFinallyExpressionRule()); } 
+	 EOF 
+;
+
+// Rule XTryCatchFinallyExpression
+ruleXTryCatchFinallyExpression 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup()); }
+		(rule__XTryCatchFinallyExpression__Group__0)
+		{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXSynchronizedExpression
+entryRuleXSynchronizedExpression
+:
+{ before(grammarAccess.getXSynchronizedExpressionRule()); }
+	 ruleXSynchronizedExpression
+{ after(grammarAccess.getXSynchronizedExpressionRule()); } 
+	 EOF 
+;
+
+// Rule XSynchronizedExpression
+ruleXSynchronizedExpression 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getXSynchronizedExpressionAccess().getGroup()); }
+		(rule__XSynchronizedExpression__Group__0)
+		{ after(grammarAccess.getXSynchronizedExpressionAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXCatchClause
+entryRuleXCatchClause
+:
+{ before(grammarAccess.getXCatchClauseRule()); }
+	 ruleXCatchClause
+{ after(grammarAccess.getXCatchClauseRule()); } 
+	 EOF 
+;
+
+// Rule XCatchClause
+ruleXCatchClause 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getXCatchClauseAccess().getGroup()); }
+		(rule__XCatchClause__Group__0)
+		{ after(grammarAccess.getXCatchClauseAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleQualifiedName
+entryRuleQualifiedName
+:
+{ before(grammarAccess.getQualifiedNameRule()); }
+	 ruleQualifiedName
+{ after(grammarAccess.getQualifiedNameRule()); } 
+	 EOF 
+;
+
+// Rule QualifiedName
+ruleQualifiedName 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getQualifiedNameAccess().getGroup()); }
+		(rule__QualifiedName__Group__0)
+		{ after(grammarAccess.getQualifiedNameAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleNumber
+entryRuleNumber
+@init { 
+	HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
+}
+:
+{ before(grammarAccess.getNumberRule()); }
+	 ruleNumber
+{ after(grammarAccess.getNumberRule()); } 
+	 EOF 
+;
+finally {
+	myHiddenTokenState.restore();
+}
+
+// Rule Number
+ruleNumber 
+	@init {
+		HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getNumberAccess().getAlternatives()); }
+		(rule__Number__Alternatives)
+		{ after(grammarAccess.getNumberAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+	myHiddenTokenState.restore();
+}
+
+// Entry rule entryRuleJvmTypeReference
+entryRuleJvmTypeReference
+:
+{ before(grammarAccess.getJvmTypeReferenceRule()); }
+	 ruleJvmTypeReference
+{ after(grammarAccess.getJvmTypeReferenceRule()); } 
+	 EOF 
+;
+
+// Rule JvmTypeReference
+ruleJvmTypeReference 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getJvmTypeReferenceAccess().getAlternatives()); }
+		(rule__JvmTypeReference__Alternatives)
+		{ after(grammarAccess.getJvmTypeReferenceAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleArrayBrackets
+entryRuleArrayBrackets
+:
+{ before(grammarAccess.getArrayBracketsRule()); }
+	 ruleArrayBrackets
+{ after(grammarAccess.getArrayBracketsRule()); } 
+	 EOF 
+;
+
+// Rule ArrayBrackets
+ruleArrayBrackets 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getArrayBracketsAccess().getGroup()); }
+		(rule__ArrayBrackets__Group__0)
+		{ after(grammarAccess.getArrayBracketsAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXFunctionTypeRef
+entryRuleXFunctionTypeRef
+:
+{ before(grammarAccess.getXFunctionTypeRefRule()); }
+	 ruleXFunctionTypeRef
+{ after(grammarAccess.getXFunctionTypeRefRule()); } 
+	 EOF 
+;
+
+// Rule XFunctionTypeRef
+ruleXFunctionTypeRef 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getXFunctionTypeRefAccess().getGroup()); }
+		(rule__XFunctionTypeRef__Group__0)
+		{ after(grammarAccess.getXFunctionTypeRefAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleJvmParameterizedTypeReference
+entryRuleJvmParameterizedTypeReference
+:
+{ before(grammarAccess.getJvmParameterizedTypeReferenceRule()); }
+	 ruleJvmParameterizedTypeReference
+{ after(grammarAccess.getJvmParameterizedTypeReferenceRule()); } 
+	 EOF 
+;
+
+// Rule JvmParameterizedTypeReference
+ruleJvmParameterizedTypeReference 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup()); }
+		(rule__JvmParameterizedTypeReference__Group__0)
+		{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleJvmArgumentTypeReference
+entryRuleJvmArgumentTypeReference
+:
+{ before(grammarAccess.getJvmArgumentTypeReferenceRule()); }
+	 ruleJvmArgumentTypeReference
+{ after(grammarAccess.getJvmArgumentTypeReferenceRule()); } 
+	 EOF 
+;
+
+// Rule JvmArgumentTypeReference
+ruleJvmArgumentTypeReference 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getJvmArgumentTypeReferenceAccess().getAlternatives()); }
+		(rule__JvmArgumentTypeReference__Alternatives)
+		{ after(grammarAccess.getJvmArgumentTypeReferenceAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleJvmWildcardTypeReference
+entryRuleJvmWildcardTypeReference
+:
+{ before(grammarAccess.getJvmWildcardTypeReferenceRule()); }
+	 ruleJvmWildcardTypeReference
+{ after(grammarAccess.getJvmWildcardTypeReferenceRule()); } 
+	 EOF 
+;
+
+// Rule JvmWildcardTypeReference
+ruleJvmWildcardTypeReference 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup()); }
+		(rule__JvmWildcardTypeReference__Group__0)
+		{ after(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleJvmUpperBound
+entryRuleJvmUpperBound
+:
+{ before(grammarAccess.getJvmUpperBoundRule()); }
+	 ruleJvmUpperBound
+{ after(grammarAccess.getJvmUpperBoundRule()); } 
+	 EOF 
+;
+
+// Rule JvmUpperBound
+ruleJvmUpperBound 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getJvmUpperBoundAccess().getGroup()); }
+		(rule__JvmUpperBound__Group__0)
+		{ after(grammarAccess.getJvmUpperBoundAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleJvmUpperBoundAnded
+entryRuleJvmUpperBoundAnded
+:
+{ before(grammarAccess.getJvmUpperBoundAndedRule()); }
+	 ruleJvmUpperBoundAnded
+{ after(grammarAccess.getJvmUpperBoundAndedRule()); } 
+	 EOF 
+;
+
+// Rule JvmUpperBoundAnded
+ruleJvmUpperBoundAnded 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getJvmUpperBoundAndedAccess().getGroup()); }
+		(rule__JvmUpperBoundAnded__Group__0)
+		{ after(grammarAccess.getJvmUpperBoundAndedAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleJvmLowerBound
+entryRuleJvmLowerBound
+:
+{ before(grammarAccess.getJvmLowerBoundRule()); }
+	 ruleJvmLowerBound
+{ after(grammarAccess.getJvmLowerBoundRule()); } 
+	 EOF 
+;
+
+// Rule JvmLowerBound
+ruleJvmLowerBound 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getJvmLowerBoundAccess().getGroup()); }
+		(rule__JvmLowerBound__Group__0)
+		{ after(grammarAccess.getJvmLowerBoundAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleJvmLowerBoundAnded
+entryRuleJvmLowerBoundAnded
+:
+{ before(grammarAccess.getJvmLowerBoundAndedRule()); }
+	 ruleJvmLowerBoundAnded
+{ after(grammarAccess.getJvmLowerBoundAndedRule()); } 
+	 EOF 
+;
+
+// Rule JvmLowerBoundAnded
+ruleJvmLowerBoundAnded 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getJvmLowerBoundAndedAccess().getGroup()); }
+		(rule__JvmLowerBoundAnded__Group__0)
+		{ after(grammarAccess.getJvmLowerBoundAndedAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleQualifiedNameWithWildcard
+entryRuleQualifiedNameWithWildcard
+:
+{ before(grammarAccess.getQualifiedNameWithWildcardRule()); }
+	 ruleQualifiedNameWithWildcard
+{ after(grammarAccess.getQualifiedNameWithWildcardRule()); } 
+	 EOF 
+;
+
+// Rule QualifiedNameWithWildcard
+ruleQualifiedNameWithWildcard 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getQualifiedNameWithWildcardAccess().getGroup()); }
+		(rule__QualifiedNameWithWildcard__Group__0)
+		{ after(grammarAccess.getQualifiedNameWithWildcardAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleValidID
+entryRuleValidID
+:
+{ before(grammarAccess.getValidIDRule()); }
+	 ruleValidID
+{ after(grammarAccess.getValidIDRule()); } 
+	 EOF 
+;
+
+// Rule ValidID
+ruleValidID 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getValidIDAccess().getIDTerminalRuleCall()); }
+		RULE_ID
+		{ after(grammarAccess.getValidIDAccess().getIDTerminalRuleCall()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleXImportSection
+entryRuleXImportSection
+:
+{ before(grammarAccess.getXImportSectionRule()); }
+	 ruleXImportSection
+{ after(grammarAccess.getXImportSectionRule()); } 
+	 EOF 
+;
+
+// Rule XImportSection
+ruleXImportSection 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		(
+			{ before(grammarAccess.getXImportSectionAccess().getImportDeclarationsAssignment()); }
+			(rule__XImportSection__ImportDeclarationsAssignment)
+			{ after(grammarAccess.getXImportSectionAccess().getImportDeclarationsAssignment()); }
+		)
+		(
+			{ before(grammarAccess.getXImportSectionAccess().getImportDeclarationsAssignment()); }
+			(rule__XImportSection__ImportDeclarationsAssignment)*
+			{ after(grammarAccess.getXImportSectionAccess().getImportDeclarationsAssignment()); }
+		)
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleQualifiedNameInStaticImport
+entryRuleQualifiedNameInStaticImport
+:
+{ before(grammarAccess.getQualifiedNameInStaticImportRule()); }
+	 ruleQualifiedNameInStaticImport
+{ after(grammarAccess.getQualifiedNameInStaticImportRule()); } 
+	 EOF 
+;
+
+// Rule QualifiedNameInStaticImport
+ruleQualifiedNameInStaticImport 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		(
+			{ before(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup()); }
+			(rule__QualifiedNameInStaticImport__Group__0)
+			{ after(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup()); }
+		)
+		(
+			{ before(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup()); }
+			(rule__QualifiedNameInStaticImport__Group__0)*
+			{ after(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup()); }
+		)
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Rule AxisEnum
+ruleAxisEnum
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getAxisEnumAccess().getAlternatives()); }
+		(rule__AxisEnum__Alternatives)
+		{ after(grammarAccess.getAxisEnumAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Rule FunctionEnum
+ruleFunctionEnum
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getFunctionEnumAccess().getAlternatives()); }
+		(rule__FunctionEnum__Alternatives)
+		{ after(grammarAccess.getFunctionEnumAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Rule ParameterFunctionEnum
+ruleParameterFunctionEnum
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getParameterFunctionEnumAccess().getAlternatives()); }
+		(rule__ParameterFunctionEnum__Alternatives)
+		{ after(grammarAccess.getParameterFunctionEnumAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Rule SetFunctionEnum
+ruleSetFunctionEnum
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getSetFunctionEnumAccess().getAlternatives()); }
+		(rule__SetFunctionEnum__Alternatives)
+		{ after(grammarAccess.getSetFunctionEnumAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Rule SetParameterFunctionEnum
+ruleSetParameterFunctionEnum
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getSetParameterFunctionEnumAccess().getAlternatives()); }
+		(rule__SetParameterFunctionEnum__Alternatives)
+		{ after(grammarAccess.getSetParameterFunctionEnumAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Rule SetAggregationEnum
+ruleSetAggregationEnum
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getSetAggregationEnumAccess().getAlternatives()); }
+		(rule__SetAggregationEnum__Alternatives)
+		{ after(grammarAccess.getSetAggregationEnumAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Rule AggregationEnum
+ruleAggregationEnum
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getAggregationEnumAccess().getAlternatives()); }
+		(rule__AggregationEnum__Alternatives)
+		{ after(grammarAccess.getAggregationEnumAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Rule OperatorEnum
+ruleOperatorEnum
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getOperatorEnumAccess().getAlternatives()); }
+		(rule__OperatorEnum__Alternatives)
+		{ after(grammarAccess.getOperatorEnumAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Rule SqlAggregationEnum
+ruleSqlAggregationEnum
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getSqlAggregationEnumAccess().getAlternatives()); }
+		(rule__SqlAggregationEnum__Alternatives)
+		{ after(grammarAccess.getSqlAggregationEnumAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Rule ValueScaleEnum
+ruleValueScaleEnum
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getValueScaleEnumAccess().getAlternatives()); }
+		(rule__ValueScaleEnum__Alternatives)
+		{ after(grammarAccess.getValueScaleEnumAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Rule TaskQueryTopicEnum
+ruleTaskQueryTopicEnum
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTaskQueryTopicEnumAccess().getAlternatives()); }
+		(rule__TaskQueryTopicEnum__Alternatives)
+		{ after(grammarAccess.getTaskQueryTopicEnumAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Rule TaskQueryColumnEnum
+ruleTaskQueryColumnEnum
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTaskQueryColumnEnumAccess().getAlternatives()); }
+		(rule__TaskQueryColumnEnum__Alternatives)
+		{ after(grammarAccess.getTaskQueryColumnEnumAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Rule TaskFilterEnum
+ruleTaskFilterEnum
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTaskFilterEnumAccess().getAlternatives()); }
+		(rule__TaskFilterEnum__Alternatives)
+		{ after(grammarAccess.getTaskFilterEnumAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Rule OrderEnum
+ruleOrderEnum
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getOrderEnumAccess().getAlternatives()); }
+		(rule__OrderEnum__Alternatives)
+		{ after(grammarAccess.getOrderEnumAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartSource__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getDatamartSourceAccess().getDatamartCubeParserRuleCall_0()); }
+		ruleDatamartCube
+		{ after(grammarAccess.getDatamartSourceAccess().getDatamartCubeParserRuleCall_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getDatamartSourceAccess().getDatamartEntityParserRuleCall_1()); }
+		ruleDatamartEntity
+		{ after(grammarAccess.getDatamartSourceAccess().getDatamartEntityParserRuleCall_1()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getDatamartSourceAccess().getDatamartTaskParserRuleCall_2()); }
+		ruleDatamartTask
+		{ after(grammarAccess.getDatamartSourceAccess().getDatamartTaskParserRuleCall_2()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartNavigation__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getDatamartNavigationAccess().getDatamartOwnerParserRuleCall_0()); }
+		ruleDatamartOwner
+		{ after(grammarAccess.getDatamartNavigationAccess().getDatamartOwnerParserRuleCall_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getDatamartNavigationAccess().getDatamartMemberParserRuleCall_1()); }
+		ruleDatamartMember
+		{ after(grammarAccess.getDatamartNavigationAccess().getDatamartMemberParserRuleCall_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartOperand__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getDatamartOperandAccess().getDatamartValueParserRuleCall_0()); }
+		ruleDatamartValue
+		{ after(grammarAccess.getDatamartOperandAccess().getDatamartValueParserRuleCall_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getDatamartOperandAccess().getGroup_1()); }
+		(rule__DatamartOperand__Group_1__0)
+		{ after(grammarAccess.getDatamartOperandAccess().getGroup_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartValue__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getDatamartValueAccess().getNumberValueAssignment_0()); }
+		(rule__DatamartValue__NumberValueAssignment_0)
+		{ after(grammarAccess.getDatamartValueAccess().getNumberValueAssignment_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getDatamartValueAccess().getStringValueAssignment_1()); }
+		(rule__DatamartValue__StringValueAssignment_1)
+		{ after(grammarAccess.getDatamartValueAccess().getStringValueAssignment_1()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getDatamartValueAccess().getAlternatives_2()); }
+		(rule__DatamartValue__Alternatives_2)
+		{ after(grammarAccess.getDatamartValueAccess().getAlternatives_2()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getDatamartValueAccess().getDatamartTaskFilterParserRuleCall_3()); }
+		ruleDatamartTaskFilter
+		{ after(grammarAccess.getDatamartValueAccess().getDatamartTaskFilterParserRuleCall_3()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getDatamartValueAccess().getDatamartColumnParserRuleCall_4()); }
+		ruleDatamartColumn
+		{ after(grammarAccess.getDatamartValueAccess().getDatamartColumnParserRuleCall_4()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getDatamartValueAccess().getDatamartAttributeBaseParserRuleCall_5()); }
+		ruleDatamartAttributeBase
+		{ after(grammarAccess.getDatamartValueAccess().getDatamartAttributeBaseParserRuleCall_5()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartValue__Alternatives_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getDatamartValueAccess().getGroup_2_0()); }
+		(rule__DatamartValue__Group_2_0__0)
+		{ after(grammarAccess.getDatamartValueAccess().getGroup_2_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getDatamartValueAccess().getSelectedAssignment_2_1()); }
+		(rule__DatamartValue__SelectedAssignment_2_1)
+		{ after(grammarAccess.getDatamartValueAccess().getSelectedAssignment_2_1()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getDatamartValueAccess().getRangedAssignment_2_2()); }
+		(rule__DatamartValue__RangedAssignment_2_2)
+		{ after(grammarAccess.getDatamartValueAccess().getRangedAssignment_2_2()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartCubeElement__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getDatamartCubeElementAccess().getDatamartCubeAxisParserRuleCall_0()); }
+		ruleDatamartCubeAxis
+		{ after(grammarAccess.getDatamartCubeElementAccess().getDatamartCubeAxisParserRuleCall_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getDatamartCubeElementAccess().getDatamartSlicerParserRuleCall_1()); }
+		ruleDatamartSlicer
+		{ after(grammarAccess.getDatamartCubeElementAccess().getDatamartSlicerParserRuleCall_1()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getDatamartCubeElementAccess().getDatamartDefineDerivedMeasureParserRuleCall_2()); }
+		ruleDatamartDefineDerivedMeasure
+		{ after(grammarAccess.getDatamartCubeElementAccess().getDatamartDefineDerivedMeasureParserRuleCall_2()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAddition__Alternatives_1_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getDatamartAdditionAccess().getGroup_1_0_0()); }
+		(rule__DatamartAddition__Group_1_0_0__0)
+		{ after(grammarAccess.getDatamartAdditionAccess().getGroup_1_0_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getDatamartAdditionAccess().getGroup_1_0_1()); }
+		(rule__DatamartAddition__Group_1_0_1__0)
+		{ after(grammarAccess.getDatamartAdditionAccess().getGroup_1_0_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartMultiplication__Alternatives_1_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getDatamartMultiplicationAccess().getGroup_1_0_0()); }
+		(rule__DatamartMultiplication__Group_1_0_0__0)
+		{ after(grammarAccess.getDatamartMultiplicationAccess().getGroup_1_0_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getDatamartMultiplicationAccess().getGroup_1_0_1()); }
+		(rule__DatamartMultiplication__Group_1_0_1__0)
+		{ after(grammarAccess.getDatamartMultiplicationAccess().getGroup_1_0_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartPrimary__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getDatamartPrimaryAccess().getDatamartNumberOrElementParserRuleCall_0()); }
+		ruleDatamartNumberOrElement
+		{ after(grammarAccess.getDatamartPrimaryAccess().getDatamartNumberOrElementParserRuleCall_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getDatamartPrimaryAccess().getGroup_1()); }
+		(rule__DatamartPrimary__Group_1__0)
+		{ after(grammarAccess.getDatamartPrimaryAccess().getGroup_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartNumberOrElement__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getDatamartNumberOrElementAccess().getValueAssignment_0()); }
+		(rule__DatamartNumberOrElement__ValueAssignment_0)
+		{ after(grammarAccess.getDatamartNumberOrElementAccess().getValueAssignment_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getDatamartNumberOrElementAccess().getDatamartMeasureParserRuleCall_1()); }
+		ruleDatamartMeasure
+		{ after(grammarAccess.getDatamartNumberOrElementAccess().getDatamartMeasureParserRuleCall_1()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getDatamartNumberOrElementAccess().getDatamartDerivedMeasureParserRuleCall_2()); }
+		ruleDatamartDerivedMeasure
+		{ after(grammarAccess.getDatamartNumberOrElementAccess().getDatamartDerivedMeasureParserRuleCall_2()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getDatamartNumberOrElementAccess().getDatamartMemberTupleParserRuleCall_3()); }
+		ruleDatamartMemberTuple
+		{ after(grammarAccess.getDatamartNumberOrElementAccess().getDatamartMemberTupleParserRuleCall_3()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getDatamartNumberOrElementAccess().getDatamartAggregationParserRuleCall_4()); }
+		ruleDatamartAggregation
+		{ after(grammarAccess.getDatamartNumberOrElementAccess().getDatamartAggregationParserRuleCall_4()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartMemberTuple__Alternatives_0_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getDatamartMemberTupleAccess().getFunctionAssignment_0_0_0()); }
+		(rule__DatamartMemberTuple__FunctionAssignment_0_0_0)
+		{ after(grammarAccess.getDatamartMemberTupleAccess().getFunctionAssignment_0_0_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getDatamartMemberTupleAccess().getFunctionAssignment_0_0_1()); }
+		(rule__DatamartMemberTuple__FunctionAssignment_0_0_1)
+		{ after(grammarAccess.getDatamartMemberTupleAccess().getFunctionAssignment_0_0_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartSetTuple__Alternatives_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getDatamartSetTupleAccess().getSetFunctionAssignment_0_0()); }
+		(rule__DatamartSetTuple__SetFunctionAssignment_0_0)
+		{ after(grammarAccess.getDatamartSetTupleAccess().getSetFunctionAssignment_0_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getDatamartSetTupleAccess().getSetFunctionAssignment_0_1()); }
+		(rule__DatamartSetTuple__SetFunctionAssignment_0_1)
+		{ after(grammarAccess.getDatamartSetTupleAccess().getSetFunctionAssignment_0_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAggregation__Alternatives_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getDatamartAggregationAccess().getSetAssignment_2_0()); }
+		(rule__DatamartAggregation__SetAssignment_2_0)
+		{ after(grammarAccess.getDatamartAggregationAccess().getSetAssignment_2_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getDatamartAggregationAccess().getSetAssignment_2_1()); }
+		(rule__DatamartAggregation__SetAssignment_2_1)
+		{ after(grammarAccess.getDatamartAggregationAccess().getSetAssignment_2_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartSetAggregation__Alternatives_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getDatamartSetAggregationAccess().getSetAssignment_2_0()); }
+		(rule__DatamartSetAggregation__SetAssignment_2_0)
+		{ after(grammarAccess.getDatamartSetAggregationAccess().getSetAssignment_2_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getDatamartSetAggregationAccess().getSetAssignment_2_1()); }
+		(rule__DatamartSetAggregation__SetAssignment_2_1)
+		{ after(grammarAccess.getDatamartSetAggregationAccess().getSetAssignment_2_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartElement__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getDatamartElementAccess().getDatamartHierarchyParserRuleCall_0()); }
+		ruleDatamartHierarchy
+		{ after(grammarAccess.getDatamartElementAccess().getDatamartHierarchyParserRuleCall_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getDatamartElementAccess().getDatamartMeasureParserRuleCall_1()); }
+		ruleDatamartMeasure
+		{ after(grammarAccess.getDatamartElementAccess().getDatamartMeasureParserRuleCall_1()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getDatamartElementAccess().getDatamartDerivedMeasureParserRuleCall_2()); }
+		ruleDatamartDerivedMeasure
+		{ after(grammarAccess.getDatamartElementAccess().getDatamartDerivedMeasureParserRuleCall_2()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getDatamartElementAccess().getDatamartSetAggregationParserRuleCall_3()); }
+		ruleDatamartSetAggregation
+		{ after(grammarAccess.getDatamartElementAccess().getDatamartSetAggregationParserRuleCall_3()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartHierarchy__Alternatives_5_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getDatamartHierarchyAccess().getFilteredAssignment_5_2_0()); }
+		(rule__DatamartHierarchy__FilteredAssignment_5_2_0)
+		{ after(grammarAccess.getDatamartHierarchyAccess().getFilteredAssignment_5_2_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getDatamartHierarchyAccess().getSelectedAssignment_5_2_1()); }
+		(rule__DatamartHierarchy__SelectedAssignment_5_2_1)
+		{ after(grammarAccess.getDatamartHierarchyAccess().getSelectedAssignment_5_2_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartHierarchy__OrderRefAlternatives_6_2_1_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getDatamartHierarchyAccess().getOrderRefDatamartMeasureParserRuleCall_6_2_1_0_0()); }
+		ruleDatamartMeasure
+		{ after(grammarAccess.getDatamartHierarchyAccess().getOrderRefDatamartMeasureParserRuleCall_6_2_1_0_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getDatamartHierarchyAccess().getOrderRefDatamartDerivedMeasureParserRuleCall_6_2_1_0_1()); }
+		ruleDatamartDerivedMeasure
+		{ after(grammarAccess.getDatamartHierarchyAccess().getOrderRefDatamartDerivedMeasureParserRuleCall_6_2_1_0_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerType__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getAttributeFillerTypeAccess().getAttributeFillerDateFutureParserRuleCall_0()); }
+		ruleAttributeFillerDateFuture
+		{ after(grammarAccess.getAttributeFillerTypeAccess().getAttributeFillerDateFutureParserRuleCall_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getAttributeFillerTypeAccess().getAttributeFillerDatePastParserRuleCall_1()); }
+		ruleAttributeFillerDatePast
+		{ after(grammarAccess.getAttributeFillerTypeAccess().getAttributeFillerDatePastParserRuleCall_1()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getAttributeFillerTypeAccess().getAttributeFillerDateRangeParserRuleCall_2()); }
+		ruleAttributeFillerDateRange
+		{ after(grammarAccess.getAttributeFillerTypeAccess().getAttributeFillerDateRangeParserRuleCall_2()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getAttributeFillerTypeAccess().getAttributeFillerSignedDoubleRangeParserRuleCall_3()); }
+		ruleAttributeFillerSignedDoubleRange
+		{ after(grammarAccess.getAttributeFillerTypeAccess().getAttributeFillerSignedDoubleRangeParserRuleCall_3()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getAttributeFillerTypeAccess().getAttributeFillerSignedDoubleRandomParserRuleCall_4()); }
+		ruleAttributeFillerSignedDoubleRandom
+		{ after(grammarAccess.getAttributeFillerTypeAccess().getAttributeFillerSignedDoubleRandomParserRuleCall_4()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getAttributeFillerTypeAccess().getAttributeFillerSignedIntegerRangeParserRuleCall_5()); }
+		ruleAttributeFillerSignedIntegerRange
+		{ after(grammarAccess.getAttributeFillerTypeAccess().getAttributeFillerSignedIntegerRangeParserRuleCall_5()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getAttributeFillerTypeAccess().getAttributeFillerSignedIntegerRandomParserRuleCall_6()); }
+		ruleAttributeFillerSignedIntegerRandom
+		{ after(grammarAccess.getAttributeFillerTypeAccess().getAttributeFillerSignedIntegerRandomParserRuleCall_6()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getAttributeFillerTypeAccess().getAttributeFillerTextRandomParserRuleCall_7()); }
+		ruleAttributeFillerTextRandom
+		{ after(grammarAccess.getAttributeFillerTypeAccess().getAttributeFillerTextRandomParserRuleCall_7()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getAttributeFillerTypeAccess().getAttributeFillerTextParagraphsParserRuleCall_8()); }
+		ruleAttributeFillerTextParagraphs
+		{ after(grammarAccess.getAttributeFillerTypeAccess().getAttributeFillerTextParagraphsParserRuleCall_8()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getAttributeFillerTypeAccess().getAttributeFillerTextSentencesParserRuleCall_9()); }
+		ruleAttributeFillerTextSentences
+		{ after(grammarAccess.getAttributeFillerTypeAccess().getAttributeFillerTextSentencesParserRuleCall_9()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getAttributeFillerTypeAccess().getAttributeFillerTextWordsParserRuleCall_10()); }
+		ruleAttributeFillerTextWords
+		{ after(grammarAccess.getAttributeFillerTypeAccess().getAttributeFillerTextWordsParserRuleCall_10()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getAttributeFillerTypeAccess().getAttributeFillerUnsignedDoubleRangeParserRuleCall_11()); }
+		ruleAttributeFillerUnsignedDoubleRange
+		{ after(grammarAccess.getAttributeFillerTypeAccess().getAttributeFillerUnsignedDoubleRangeParserRuleCall_11()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getAttributeFillerTypeAccess().getAttributeFillerUnsignedDoubleRandomParserRuleCall_12()); }
+		ruleAttributeFillerUnsignedDoubleRandom
+		{ after(grammarAccess.getAttributeFillerTypeAccess().getAttributeFillerUnsignedDoubleRandomParserRuleCall_12()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getAttributeFillerTypeAccess().getAttributeFillerUnsignedIntegerRangeParserRuleCall_13()); }
+		ruleAttributeFillerUnsignedIntegerRange
+		{ after(grammarAccess.getAttributeFillerTypeAccess().getAttributeFillerUnsignedIntegerRangeParserRuleCall_13()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getAttributeFillerTypeAccess().getAttributeFillerUnsignedIntegerRandomParserRuleCall_14()); }
+		ruleAttributeFillerUnsignedIntegerRandom
+		{ after(grammarAccess.getAttributeFillerTypeAccess().getAttributeFillerUnsignedIntegerRandomParserRuleCall_14()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedDoubleRange__Alternatives_1_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getAttributeFillerSignedDoubleRangeAccess().getBeginRangeAssignment_1_0_0()); }
+		(rule__AttributeFillerSignedDoubleRange__BeginRangeAssignment_1_0_0)
+		{ after(grammarAccess.getAttributeFillerSignedDoubleRangeAccess().getBeginRangeAssignment_1_0_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getAttributeFillerSignedDoubleRangeAccess().getBeginRangeRefAssignment_1_0_1()); }
+		(rule__AttributeFillerSignedDoubleRange__BeginRangeRefAssignment_1_0_1)
+		{ after(grammarAccess.getAttributeFillerSignedDoubleRangeAccess().getBeginRangeRefAssignment_1_0_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedDoubleRange__Alternatives_1_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getAttributeFillerSignedDoubleRangeAccess().getEndRangeAssignment_1_2_0()); }
+		(rule__AttributeFillerSignedDoubleRange__EndRangeAssignment_1_2_0)
+		{ after(grammarAccess.getAttributeFillerSignedDoubleRangeAccess().getEndRangeAssignment_1_2_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getAttributeFillerSignedDoubleRangeAccess().getEndRangeRefAssignment_1_2_1()); }
+		(rule__AttributeFillerSignedDoubleRange__EndRangeRefAssignment_1_2_1)
+		{ after(grammarAccess.getAttributeFillerSignedDoubleRangeAccess().getEndRangeRefAssignment_1_2_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedIntegerRange__Alternatives_2_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getAttributeFillerSignedIntegerRangeAccess().getBeginRangeAssignment_2_0_0()); }
+		(rule__AttributeFillerSignedIntegerRange__BeginRangeAssignment_2_0_0)
+		{ after(grammarAccess.getAttributeFillerSignedIntegerRangeAccess().getBeginRangeAssignment_2_0_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getAttributeFillerSignedIntegerRangeAccess().getBeginRangeRefAssignment_2_0_1()); }
+		(rule__AttributeFillerSignedIntegerRange__BeginRangeRefAssignment_2_0_1)
+		{ after(grammarAccess.getAttributeFillerSignedIntegerRangeAccess().getBeginRangeRefAssignment_2_0_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedIntegerRange__Alternatives_2_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getAttributeFillerSignedIntegerRangeAccess().getEndRangeAssignment_2_2_0()); }
+		(rule__AttributeFillerSignedIntegerRange__EndRangeAssignment_2_2_0)
+		{ after(grammarAccess.getAttributeFillerSignedIntegerRangeAccess().getEndRangeAssignment_2_2_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getAttributeFillerSignedIntegerRangeAccess().getEndRangeRefAssignment_2_2_1()); }
+		(rule__AttributeFillerSignedIntegerRange__EndRangeRefAssignment_2_2_1)
+		{ after(grammarAccess.getAttributeFillerSignedIntegerRangeAccess().getEndRangeRefAssignment_2_2_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedDoubleRange__Alternatives_1_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getAttributeFillerUnsignedDoubleRangeAccess().getBeginRangeAssignment_1_0_0()); }
+		(rule__AttributeFillerUnsignedDoubleRange__BeginRangeAssignment_1_0_0)
+		{ after(grammarAccess.getAttributeFillerUnsignedDoubleRangeAccess().getBeginRangeAssignment_1_0_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getAttributeFillerUnsignedDoubleRangeAccess().getBeginRangeRefAssignment_1_0_1()); }
+		(rule__AttributeFillerUnsignedDoubleRange__BeginRangeRefAssignment_1_0_1)
+		{ after(grammarAccess.getAttributeFillerUnsignedDoubleRangeAccess().getBeginRangeRefAssignment_1_0_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedDoubleRange__Alternatives_1_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getAttributeFillerUnsignedDoubleRangeAccess().getEndRangeAssignment_1_2_0()); }
+		(rule__AttributeFillerUnsignedDoubleRange__EndRangeAssignment_1_2_0)
+		{ after(grammarAccess.getAttributeFillerUnsignedDoubleRangeAccess().getEndRangeAssignment_1_2_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getAttributeFillerUnsignedDoubleRangeAccess().getEndRangeRefAssignment_1_2_1()); }
+		(rule__AttributeFillerUnsignedDoubleRange__EndRangeRefAssignment_1_2_1)
+		{ after(grammarAccess.getAttributeFillerUnsignedDoubleRangeAccess().getEndRangeRefAssignment_1_2_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedIntegerRange__Alternatives_2_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getAttributeFillerUnsignedIntegerRangeAccess().getBeginRangeAssignment_2_0_0()); }
+		(rule__AttributeFillerUnsignedIntegerRange__BeginRangeAssignment_2_0_0)
+		{ after(grammarAccess.getAttributeFillerUnsignedIntegerRangeAccess().getBeginRangeAssignment_2_0_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getAttributeFillerUnsignedIntegerRangeAccess().getBeginRangeRefAssignment_2_0_1()); }
+		(rule__AttributeFillerUnsignedIntegerRange__BeginRangeRefAssignment_2_0_1)
+		{ after(grammarAccess.getAttributeFillerUnsignedIntegerRangeAccess().getBeginRangeRefAssignment_2_0_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedIntegerRange__Alternatives_2_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getAttributeFillerUnsignedIntegerRangeAccess().getEndRangeAssignment_2_2_0()); }
+		(rule__AttributeFillerUnsignedIntegerRange__EndRangeAssignment_2_2_0)
+		{ after(grammarAccess.getAttributeFillerUnsignedIntegerRangeAccess().getEndRangeAssignment_2_2_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getAttributeFillerUnsignedIntegerRangeAccess().getEndRangeRefAssignment_2_2_1()); }
+		(rule__AttributeFillerUnsignedIntegerRange__EndRangeRefAssignment_2_2_1)
+		{ after(grammarAccess.getAttributeFillerUnsignedIntegerRangeAccess().getEndRangeRefAssignment_2_2_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XImportDeclaration__Alternatives_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXImportDeclarationAccess().getGroup_2_0()); }
+		(rule__XImportDeclaration__Group_2_0__0)
+		{ after(grammarAccess.getXImportDeclarationAccess().getGroup_2_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_2_1()); }
+		(rule__XImportDeclaration__ImportedTypeAssignment_2_1)
+		{ after(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_2_1()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceAssignment_2_2()); }
+		(rule__XImportDeclaration__ImportedNamespaceAssignment_2_2)
+		{ after(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceAssignment_2_2()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getXImportDeclarationAccess().getGroup_2_3()); }
+		(rule__XImportDeclaration__Group_2_3__0)
+		{ after(grammarAccess.getXImportDeclarationAccess().getGroup_2_3()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XImportDeclaration__Alternatives_2_0_3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXImportDeclarationAccess().getWildcardAssignment_2_0_3_0()); }
+		(rule__XImportDeclaration__WildcardAssignment_2_0_3_0)
+		{ after(grammarAccess.getXImportDeclarationAccess().getWildcardAssignment_2_0_3_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getXImportDeclarationAccess().getMemberNameAssignment_2_0_3_1()); }
+		(rule__XImportDeclaration__MemberNameAssignment_2_0_3_1)
+		{ after(grammarAccess.getXImportDeclarationAccess().getMemberNameAssignment_2_0_3_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotation__Alternatives_3_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXAnnotationAccess().getGroup_3_1_0()); }
+		(rule__XAnnotation__Group_3_1_0__0)
+		{ after(grammarAccess.getXAnnotationAccess().getGroup_3_1_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getXAnnotationAccess().getValueAssignment_3_1_1()); }
+		(rule__XAnnotation__ValueAssignment_3_1_1)
+		{ after(grammarAccess.getXAnnotationAccess().getValueAssignment_3_1_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0()); }
+		(rule__XAnnotationElementValueOrCommaList__Group_0__0)
+		{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1()); }
+		(rule__XAnnotationElementValueOrCommaList__Group_1__0)
+		{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValue__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0()); }
+		(rule__XAnnotationElementValue__Group_0__0)
+		{ after(grammarAccess.getXAnnotationElementValueAccess().getGroup_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getXAnnotationElementValueAccess().getXAnnotationOrExpressionParserRuleCall_1()); }
+		ruleXAnnotationOrExpression
+		{ after(grammarAccess.getXAnnotationElementValueAccess().getXAnnotationOrExpressionParserRuleCall_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationOrExpression__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXAnnotationOrExpressionAccess().getXAnnotationParserRuleCall_0()); }
+		ruleXAnnotation
+		{ after(grammarAccess.getXAnnotationOrExpressionAccess().getXAnnotationParserRuleCall_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getXAnnotationOrExpressionAccess().getXExpressionParserRuleCall_1()); }
+		ruleXExpression
+		{ after(grammarAccess.getXAnnotationOrExpressionAccess().getXExpressionParserRuleCall_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAssignment__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXAssignmentAccess().getGroup_0()); }
+		(rule__XAssignment__Group_0__0)
+		{ after(grammarAccess.getXAssignmentAccess().getGroup_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getXAssignmentAccess().getGroup_1()); }
+		(rule__XAssignment__Group_1__0)
+		{ after(grammarAccess.getXAssignmentAccess().getGroup_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpMultiAssign__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getOpMultiAssignAccess().getPlusSignEqualsSignKeyword_0()); }
+		'+='
+		{ after(grammarAccess.getOpMultiAssignAccess().getPlusSignEqualsSignKeyword_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getOpMultiAssignAccess().getHyphenMinusEqualsSignKeyword_1()); }
+		'-='
+		{ after(grammarAccess.getOpMultiAssignAccess().getHyphenMinusEqualsSignKeyword_1()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getOpMultiAssignAccess().getAsteriskEqualsSignKeyword_2()); }
+		'*='
+		{ after(grammarAccess.getOpMultiAssignAccess().getAsteriskEqualsSignKeyword_2()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getOpMultiAssignAccess().getSolidusEqualsSignKeyword_3()); }
+		'/='
+		{ after(grammarAccess.getOpMultiAssignAccess().getSolidusEqualsSignKeyword_3()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getOpMultiAssignAccess().getPercentSignEqualsSignKeyword_4()); }
+		'%='
+		{ after(grammarAccess.getOpMultiAssignAccess().getPercentSignEqualsSignKeyword_4()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getOpMultiAssignAccess().getGroup_5()); }
+		(rule__OpMultiAssign__Group_5__0)
+		{ after(grammarAccess.getOpMultiAssignAccess().getGroup_5()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getOpMultiAssignAccess().getGroup_6()); }
+		(rule__OpMultiAssign__Group_6__0)
+		{ after(grammarAccess.getOpMultiAssignAccess().getGroup_6()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpEquality__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignKeyword_0()); }
+		'=='
+		{ after(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignKeyword_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignKeyword_1()); }
+		'!='
+		{ after(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignKeyword_1()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignEqualsSignKeyword_2()); }
+		'==='
+		{ after(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignEqualsSignKeyword_2()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignEqualsSignKeyword_3()); }
+		'!=='
+		{ after(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignEqualsSignKeyword_3()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XRelationalExpression__Alternatives_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0()); }
+		(rule__XRelationalExpression__Group_1_0__0)
+		{ after(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1()); }
+		(rule__XRelationalExpression__Group_1_1__0)
+		{ after(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpCompare__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getOpCompareAccess().getGreaterThanSignEqualsSignKeyword_0()); }
+		'>='
+		{ after(grammarAccess.getOpCompareAccess().getGreaterThanSignEqualsSignKeyword_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getOpCompareAccess().getGroup_1()); }
+		(rule__OpCompare__Group_1__0)
+		{ after(grammarAccess.getOpCompareAccess().getGroup_1()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getOpCompareAccess().getGreaterThanSignKeyword_2()); }
+		'>'
+		{ after(grammarAccess.getOpCompareAccess().getGreaterThanSignKeyword_2()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getOpCompareAccess().getLessThanSignKeyword_3()); }
+		'<'
+		{ after(grammarAccess.getOpCompareAccess().getLessThanSignKeyword_3()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpOther__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getOpOtherAccess().getHyphenMinusGreaterThanSignKeyword_0()); }
+		'->'
+		{ after(grammarAccess.getOpOtherAccess().getHyphenMinusGreaterThanSignKeyword_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getOpOtherAccess().getFullStopFullStopLessThanSignKeyword_1()); }
+		'..<'
+		{ after(grammarAccess.getOpOtherAccess().getFullStopFullStopLessThanSignKeyword_1()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getOpOtherAccess().getGroup_2()); }
+		(rule__OpOther__Group_2__0)
+		{ after(grammarAccess.getOpOtherAccess().getGroup_2()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_3()); }
+		'..'
+		{ after(grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_3()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_4()); }
+		'=>'
+		{ after(grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_4()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getOpOtherAccess().getGroup_5()); }
+		(rule__OpOther__Group_5__0)
+		{ after(grammarAccess.getOpOtherAccess().getGroup_5()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getOpOtherAccess().getGroup_6()); }
+		(rule__OpOther__Group_6__0)
+		{ after(grammarAccess.getOpOtherAccess().getGroup_6()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getOpOtherAccess().getLessThanSignGreaterThanSignKeyword_7()); }
+		'<>'
+		{ after(grammarAccess.getOpOtherAccess().getLessThanSignGreaterThanSignKeyword_7()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getOpOtherAccess().getQuestionMarkColonKeyword_8()); }
+		'?:'
+		{ after(grammarAccess.getOpOtherAccess().getQuestionMarkColonKeyword_8()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpOther__Alternatives_5_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getOpOtherAccess().getGroup_5_1_0()); }
+		(rule__OpOther__Group_5_1_0__0)
+		{ after(grammarAccess.getOpOtherAccess().getGroup_5_1_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_1()); }
+		'>'
+		{ after(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpOther__Alternatives_6_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getOpOtherAccess().getGroup_6_1_0()); }
+		(rule__OpOther__Group_6_1_0__0)
+		{ after(grammarAccess.getOpOtherAccess().getGroup_6_1_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_1()); }
+		'<'
+		{ after(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_1()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_6_1_2()); }
+		'=>'
+		{ after(grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_6_1_2()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpAdd__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getOpAddAccess().getPlusSignKeyword_0()); }
+		'+'
+		{ after(grammarAccess.getOpAddAccess().getPlusSignKeyword_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getOpAddAccess().getHyphenMinusKeyword_1()); }
+		'-'
+		{ after(grammarAccess.getOpAddAccess().getHyphenMinusKeyword_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpMulti__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getOpMultiAccess().getAsteriskKeyword_0()); }
+		'*'
+		{ after(grammarAccess.getOpMultiAccess().getAsteriskKeyword_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getOpMultiAccess().getAsteriskAsteriskKeyword_1()); }
+		'**'
+		{ after(grammarAccess.getOpMultiAccess().getAsteriskAsteriskKeyword_1()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getOpMultiAccess().getSolidusKeyword_2()); }
+		'/'
+		{ after(grammarAccess.getOpMultiAccess().getSolidusKeyword_2()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getOpMultiAccess().getPercentSignKeyword_3()); }
+		'%'
+		{ after(grammarAccess.getOpMultiAccess().getPercentSignKeyword_3()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XUnaryOperation__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXUnaryOperationAccess().getGroup_0()); }
+		(rule__XUnaryOperation__Group_0__0)
+		{ after(grammarAccess.getXUnaryOperationAccess().getGroup_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getXUnaryOperationAccess().getXCastedExpressionParserRuleCall_1()); }
+		ruleXCastedExpression
+		{ after(grammarAccess.getXUnaryOperationAccess().getXCastedExpressionParserRuleCall_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpUnary__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getOpUnaryAccess().getExclamationMarkKeyword_0()); }
+		'!'
+		{ after(grammarAccess.getOpUnaryAccess().getExclamationMarkKeyword_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getOpUnaryAccess().getHyphenMinusKeyword_1()); }
+		'-'
+		{ after(grammarAccess.getOpUnaryAccess().getHyphenMinusKeyword_1()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getOpUnaryAccess().getPlusSignKeyword_2()); }
+		'+'
+		{ after(grammarAccess.getOpUnaryAccess().getPlusSignKeyword_2()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpPostfix__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getOpPostfixAccess().getPlusSignPlusSignKeyword_0()); }
+		'++'
+		{ after(grammarAccess.getOpPostfixAccess().getPlusSignPlusSignKeyword_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getOpPostfixAccess().getHyphenMinusHyphenMinusKeyword_1()); }
+		'--'
+		{ after(grammarAccess.getOpPostfixAccess().getHyphenMinusHyphenMinusKeyword_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Alternatives_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0()); }
+		(rule__XMemberFeatureCall__Group_1_0__0)
+		{ after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1()); }
+		(rule__XMemberFeatureCall__Group_1_1__0)
+		{ after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Alternatives_1_0_0_0_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_0_0_0_1_0()); }
+		'.'
+		{ after(grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_0_0_0_1_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticAssignment_1_0_0_0_1_1()); }
+		(rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1)
+		{ after(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticAssignment_1_0_0_0_1_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Alternatives_1_1_0_0_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_1_0_0_1_0()); }
+		'.'
+		{ after(grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_1_0_0_1_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getXMemberFeatureCallAccess().getNullSafeAssignment_1_1_0_0_1_1()); }
+		(rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1)
+		{ after(grammarAccess.getXMemberFeatureCallAccess().getNullSafeAssignment_1_1_0_0_1_1()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticAssignment_1_1_0_0_1_2()); }
+		(rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2)
+		{ after(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticAssignment_1_1_0_0_1_2()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Alternatives_1_1_3_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_0()); }
+		(rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0)
+		{ after(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3_1_1()); }
+		(rule__XMemberFeatureCall__Group_1_1_3_1_1__0)
+		{ after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3_1_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XPrimaryExpression__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXPrimaryExpressionAccess().getXConstructorCallParserRuleCall_0()); }
+		ruleXConstructorCall
+		{ after(grammarAccess.getXPrimaryExpressionAccess().getXConstructorCallParserRuleCall_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getXPrimaryExpressionAccess().getXBlockExpressionParserRuleCall_1()); }
+		ruleXBlockExpression
+		{ after(grammarAccess.getXPrimaryExpressionAccess().getXBlockExpressionParserRuleCall_1()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getXPrimaryExpressionAccess().getXSwitchExpressionParserRuleCall_2()); }
+		ruleXSwitchExpression
+		{ after(grammarAccess.getXPrimaryExpressionAccess().getXSwitchExpressionParserRuleCall_2()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getXPrimaryExpressionAccess().getXSynchronizedExpressionParserRuleCall_3()); }
+		(ruleXSynchronizedExpression)
+		{ after(grammarAccess.getXPrimaryExpressionAccess().getXSynchronizedExpressionParserRuleCall_3()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getXPrimaryExpressionAccess().getXFeatureCallParserRuleCall_4()); }
+		ruleXFeatureCall
+		{ after(grammarAccess.getXPrimaryExpressionAccess().getXFeatureCallParserRuleCall_4()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getXPrimaryExpressionAccess().getXLiteralParserRuleCall_5()); }
+		ruleXLiteral
+		{ after(grammarAccess.getXPrimaryExpressionAccess().getXLiteralParserRuleCall_5()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getXPrimaryExpressionAccess().getXIfExpressionParserRuleCall_6()); }
+		ruleXIfExpression
+		{ after(grammarAccess.getXPrimaryExpressionAccess().getXIfExpressionParserRuleCall_6()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getXPrimaryExpressionAccess().getXForLoopExpressionParserRuleCall_7()); }
+		(ruleXForLoopExpression)
+		{ after(grammarAccess.getXPrimaryExpressionAccess().getXForLoopExpressionParserRuleCall_7()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getXPrimaryExpressionAccess().getXBasicForLoopExpressionParserRuleCall_8()); }
+		ruleXBasicForLoopExpression
+		{ after(grammarAccess.getXPrimaryExpressionAccess().getXBasicForLoopExpressionParserRuleCall_8()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getXPrimaryExpressionAccess().getXWhileExpressionParserRuleCall_9()); }
+		ruleXWhileExpression
+		{ after(grammarAccess.getXPrimaryExpressionAccess().getXWhileExpressionParserRuleCall_9()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getXPrimaryExpressionAccess().getXDoWhileExpressionParserRuleCall_10()); }
+		ruleXDoWhileExpression
+		{ after(grammarAccess.getXPrimaryExpressionAccess().getXDoWhileExpressionParserRuleCall_10()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getXPrimaryExpressionAccess().getXThrowExpressionParserRuleCall_11()); }
+		ruleXThrowExpression
+		{ after(grammarAccess.getXPrimaryExpressionAccess().getXThrowExpressionParserRuleCall_11()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getXPrimaryExpressionAccess().getXReturnExpressionParserRuleCall_12()); }
+		ruleXReturnExpression
+		{ after(grammarAccess.getXPrimaryExpressionAccess().getXReturnExpressionParserRuleCall_12()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getXPrimaryExpressionAccess().getXTryCatchFinallyExpressionParserRuleCall_13()); }
+		ruleXTryCatchFinallyExpression
+		{ after(grammarAccess.getXPrimaryExpressionAccess().getXTryCatchFinallyExpressionParserRuleCall_13()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getXPrimaryExpressionAccess().getXParenthesizedExpressionParserRuleCall_14()); }
+		ruleXParenthesizedExpression
+		{ after(grammarAccess.getXPrimaryExpressionAccess().getXParenthesizedExpressionParserRuleCall_14()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XLiteral__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXLiteralAccess().getXCollectionLiteralParserRuleCall_0()); }
+		ruleXCollectionLiteral
+		{ after(grammarAccess.getXLiteralAccess().getXCollectionLiteralParserRuleCall_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getXLiteralAccess().getXClosureParserRuleCall_1()); }
+		(ruleXClosure)
+		{ after(grammarAccess.getXLiteralAccess().getXClosureParserRuleCall_1()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getXLiteralAccess().getXBooleanLiteralParserRuleCall_2()); }
+		ruleXBooleanLiteral
+		{ after(grammarAccess.getXLiteralAccess().getXBooleanLiteralParserRuleCall_2()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getXLiteralAccess().getXNumberLiteralParserRuleCall_3()); }
+		ruleXNumberLiteral
+		{ after(grammarAccess.getXLiteralAccess().getXNumberLiteralParserRuleCall_3()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getXLiteralAccess().getXNullLiteralParserRuleCall_4()); }
+		ruleXNullLiteral
+		{ after(grammarAccess.getXLiteralAccess().getXNullLiteralParserRuleCall_4()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getXLiteralAccess().getXStringLiteralParserRuleCall_5()); }
+		ruleXStringLiteral
+		{ after(grammarAccess.getXLiteralAccess().getXStringLiteralParserRuleCall_5()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getXLiteralAccess().getXTypeLiteralParserRuleCall_6()); }
+		ruleXTypeLiteral
+		{ after(grammarAccess.getXLiteralAccess().getXTypeLiteralParserRuleCall_6()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XCollectionLiteral__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXCollectionLiteralAccess().getXSetLiteralParserRuleCall_0()); }
+		ruleXSetLiteral
+		{ after(grammarAccess.getXCollectionLiteralAccess().getXSetLiteralParserRuleCall_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getXCollectionLiteralAccess().getXListLiteralParserRuleCall_1()); }
+		ruleXListLiteral
+		{ after(grammarAccess.getXCollectionLiteralAccess().getXListLiteralParserRuleCall_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Alternatives_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0()); }
+		(rule__XSwitchExpression__Group_2_0__0)
+		{ after(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1()); }
+		(rule__XSwitchExpression__Group_2_1__0)
+		{ after(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XCasePart__Alternatives_3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXCasePartAccess().getGroup_3_0()); }
+		(rule__XCasePart__Group_3_0__0)
+		{ after(grammarAccess.getXCasePartAccess().getGroup_3_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getXCasePartAccess().getFallThroughAssignment_3_1()); }
+		(rule__XCasePart__FallThroughAssignment_3_1)
+		{ after(grammarAccess.getXCasePartAccess().getFallThroughAssignment_3_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XExpressionOrVarDeclaration__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXExpressionOrVarDeclarationAccess().getXVariableDeclarationParserRuleCall_0()); }
+		ruleXVariableDeclaration
+		{ after(grammarAccess.getXExpressionOrVarDeclarationAccess().getXVariableDeclarationParserRuleCall_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getXExpressionOrVarDeclarationAccess().getXExpressionParserRuleCall_1()); }
+		ruleXExpression
+		{ after(grammarAccess.getXExpressionOrVarDeclarationAccess().getXExpressionParserRuleCall_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XVariableDeclaration__Alternatives_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXVariableDeclarationAccess().getWriteableAssignment_1_0()); }
+		(rule__XVariableDeclaration__WriteableAssignment_1_0)
+		{ after(grammarAccess.getXVariableDeclarationAccess().getWriteableAssignment_1_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getXVariableDeclarationAccess().getValKeyword_1_1()); }
+		'val'
+		{ after(grammarAccess.getXVariableDeclarationAccess().getValKeyword_1_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XVariableDeclaration__Alternatives_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0()); }
+		(rule__XVariableDeclaration__Group_2_0__0)
+		{ after(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getXVariableDeclarationAccess().getNameAssignment_2_1()); }
+		(rule__XVariableDeclaration__NameAssignment_2_1)
+		{ after(grammarAccess.getXVariableDeclarationAccess().getNameAssignment_2_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__Alternatives_3_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_0()); }
+		(rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0)
+		{ after(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getXFeatureCallAccess().getGroup_3_1_1()); }
+		(rule__XFeatureCall__Group_3_1_1__0)
+		{ after(grammarAccess.getXFeatureCallAccess().getGroup_3_1_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FeatureCallID__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getFeatureCallIDAccess().getValidIDParserRuleCall_0()); }
+		ruleValidID
+		{ after(grammarAccess.getFeatureCallIDAccess().getValidIDParserRuleCall_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getFeatureCallIDAccess().getExtendsKeyword_1()); }
+		'extends'
+		{ after(grammarAccess.getFeatureCallIDAccess().getExtendsKeyword_1()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getFeatureCallIDAccess().getStaticKeyword_2()); }
+		'static'
+		{ after(grammarAccess.getFeatureCallIDAccess().getStaticKeyword_2()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getFeatureCallIDAccess().getImportKeyword_3()); }
+		'import'
+		{ after(grammarAccess.getFeatureCallIDAccess().getImportKeyword_3()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getFeatureCallIDAccess().getExtensionKeyword_4()); }
+		'extension'
+		{ after(grammarAccess.getFeatureCallIDAccess().getExtensionKeyword_4()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IdOrSuper__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getIdOrSuperAccess().getFeatureCallIDParserRuleCall_0()); }
+		ruleFeatureCallID
+		{ after(grammarAccess.getIdOrSuperAccess().getFeatureCallIDParserRuleCall_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getIdOrSuperAccess().getSuperKeyword_1()); }
+		'super'
+		{ after(grammarAccess.getIdOrSuperAccess().getSuperKeyword_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Alternatives_4_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_0()); }
+		(rule__XConstructorCall__ArgumentsAssignment_4_1_0)
+		{ after(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getXConstructorCallAccess().getGroup_4_1_1()); }
+		(rule__XConstructorCall__Group_4_1_1__0)
+		{ after(grammarAccess.getXConstructorCallAccess().getGroup_4_1_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBooleanLiteral__Alternatives_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXBooleanLiteralAccess().getFalseKeyword_1_0()); }
+		'false'
+		{ after(grammarAccess.getXBooleanLiteralAccess().getFalseKeyword_1_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getXBooleanLiteralAccess().getIsTrueAssignment_1_1()); }
+		(rule__XBooleanLiteral__IsTrueAssignment_1_1)
+		{ after(grammarAccess.getXBooleanLiteralAccess().getIsTrueAssignment_1_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XTryCatchFinallyExpression__Alternatives_3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_0()); }
+		(rule__XTryCatchFinallyExpression__Group_3_0__0)
+		{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_1()); }
+		(rule__XTryCatchFinallyExpression__Group_3_1__0)
+		{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Number__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getNumberAccess().getHEXTerminalRuleCall_0()); }
+		RULE_HEX
+		{ after(grammarAccess.getNumberAccess().getHEXTerminalRuleCall_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getNumberAccess().getGroup_1()); }
+		(rule__Number__Group_1__0)
+		{ after(grammarAccess.getNumberAccess().getGroup_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Number__Alternatives_1_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_0_0()); }
+		RULE_INT
+		{ after(grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_0_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_0_1()); }
+		RULE_DECIMAL
+		{ after(grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_0_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Number__Alternatives_1_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_1_1_0()); }
+		RULE_INT
+		{ after(grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_1_1_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_1_1_1()); }
+		RULE_DECIMAL
+		{ after(grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_1_1_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmTypeReference__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getJvmTypeReferenceAccess().getGroup_0()); }
+		(rule__JvmTypeReference__Group_0__0)
+		{ after(grammarAccess.getJvmTypeReferenceAccess().getGroup_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getJvmTypeReferenceAccess().getXFunctionTypeRefParserRuleCall_1()); }
+		ruleXFunctionTypeRef
+		{ after(grammarAccess.getJvmTypeReferenceAccess().getXFunctionTypeRefParserRuleCall_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmArgumentTypeReference__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmTypeReferenceParserRuleCall_0()); }
+		ruleJvmTypeReference
+		{ after(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmTypeReferenceParserRuleCall_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmWildcardTypeReferenceParserRuleCall_1()); }
+		ruleJvmWildcardTypeReference
+		{ after(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmWildcardTypeReferenceParserRuleCall_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmWildcardTypeReference__Alternatives_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup_2_0()); }
+		(rule__JvmWildcardTypeReference__Group_2_0__0)
+		{ after(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup_2_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup_2_1()); }
+		(rule__JvmWildcardTypeReference__Group_2_1__0)
+		{ after(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup_2_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AxisEnum__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getAxisEnumAccess().getDEFAULTEnumLiteralDeclaration_0()); }
+		('default')
+		{ after(grammarAccess.getAxisEnumAccess().getDEFAULTEnumLiteralDeclaration_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getAxisEnumAccess().getCOLUMNSEnumLiteralDeclaration_1()); }
+		('columns')
+		{ after(grammarAccess.getAxisEnumAccess().getCOLUMNSEnumLiteralDeclaration_1()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getAxisEnumAccess().getROWSEnumLiteralDeclaration_2()); }
+		('rows')
+		{ after(grammarAccess.getAxisEnumAccess().getROWSEnumLiteralDeclaration_2()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getAxisEnumAccess().getPAGESEnumLiteralDeclaration_3()); }
+		('pages')
+		{ after(grammarAccess.getAxisEnumAccess().getPAGESEnumLiteralDeclaration_3()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getAxisEnumAccess().getSECTIONSEnumLiteralDeclaration_4()); }
+		('sections')
+		{ after(grammarAccess.getAxisEnumAccess().getSECTIONSEnumLiteralDeclaration_4()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getAxisEnumAccess().getCHAPTERSEnumLiteralDeclaration_5()); }
+		('chapters')
+		{ after(grammarAccess.getAxisEnumAccess().getCHAPTERSEnumLiteralDeclaration_5()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FunctionEnum__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getFunctionEnumAccess().getPREVMEMBEREnumLiteralDeclaration_0()); }
+		('previous')
+		{ after(grammarAccess.getFunctionEnumAccess().getPREVMEMBEREnumLiteralDeclaration_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getFunctionEnumAccess().getNEXTMEMBEREnumLiteralDeclaration_1()); }
+		('next')
+		{ after(grammarAccess.getFunctionEnumAccess().getNEXTMEMBEREnumLiteralDeclaration_1()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getFunctionEnumAccess().getFIRSTCHILDEnumLiteralDeclaration_2()); }
+		('first')
+		{ after(grammarAccess.getFunctionEnumAccess().getFIRSTCHILDEnumLiteralDeclaration_2()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getFunctionEnumAccess().getLASTCHILDEnumLiteralDeclaration_3()); }
+		('last')
+		{ after(grammarAccess.getFunctionEnumAccess().getLASTCHILDEnumLiteralDeclaration_3()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ParameterFunctionEnum__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getParameterFunctionEnumAccess().getLAGEnumLiteralDeclaration_0()); }
+		('lag')
+		{ after(grammarAccess.getParameterFunctionEnumAccess().getLAGEnumLiteralDeclaration_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getParameterFunctionEnumAccess().getLEADEnumLiteralDeclaration_1()); }
+		('lead')
+		{ after(grammarAccess.getParameterFunctionEnumAccess().getLEADEnumLiteralDeclaration_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SetFunctionEnum__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getSetFunctionEnumAccess().getYTDEnumLiteralDeclaration_0()); }
+		('year-to-date')
+		{ after(grammarAccess.getSetFunctionEnumAccess().getYTDEnumLiteralDeclaration_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getSetFunctionEnumAccess().getPERIODSTODATEEnumLiteralDeclaration_1()); }
+		('periods')
+		{ after(grammarAccess.getSetFunctionEnumAccess().getPERIODSTODATEEnumLiteralDeclaration_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SetParameterFunctionEnum__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getSetParameterFunctionEnumAccess().getTAILEnumLiteralDeclaration_0()); }
+		('tail')
+		{ after(grammarAccess.getSetParameterFunctionEnumAccess().getTAILEnumLiteralDeclaration_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getSetParameterFunctionEnumAccess().getHEADEnumLiteralDeclaration_1()); }
+		('head')
+		{ after(grammarAccess.getSetParameterFunctionEnumAccess().getHEADEnumLiteralDeclaration_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SetAggregationEnum__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getSetAggregationEnumAccess().getTOPCOUNTEnumLiteralDeclaration_0()); }
+		('topcount')
+		{ after(grammarAccess.getSetAggregationEnumAccess().getTOPCOUNTEnumLiteralDeclaration_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getSetAggregationEnumAccess().getTOPSUMEnumLiteralDeclaration_1()); }
+		('topsummation')
+		{ after(grammarAccess.getSetAggregationEnumAccess().getTOPSUMEnumLiteralDeclaration_1()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getSetAggregationEnumAccess().getTOPPERCENTEnumLiteralDeclaration_2()); }
+		('toppercentage')
+		{ after(grammarAccess.getSetAggregationEnumAccess().getTOPPERCENTEnumLiteralDeclaration_2()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getSetAggregationEnumAccess().getBOTTOMCOUNTEnumLiteralDeclaration_3()); }
+		('bottomcount')
+		{ after(grammarAccess.getSetAggregationEnumAccess().getBOTTOMCOUNTEnumLiteralDeclaration_3()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getSetAggregationEnumAccess().getBOTTOMSUMEnumLiteralDeclaration_4()); }
+		('bottomsummation')
+		{ after(grammarAccess.getSetAggregationEnumAccess().getBOTTOMSUMEnumLiteralDeclaration_4()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getSetAggregationEnumAccess().getBOTTOMPERCENTEnumLiteralDeclaration_5()); }
+		('bottompercentage')
+		{ after(grammarAccess.getSetAggregationEnumAccess().getBOTTOMPERCENTEnumLiteralDeclaration_5()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AggregationEnum__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getAggregationEnumAccess().getAVGEnumLiteralDeclaration_0()); }
+		('average')
+		{ after(grammarAccess.getAggregationEnumAccess().getAVGEnumLiteralDeclaration_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getAggregationEnumAccess().getSUMEnumLiteralDeclaration_1()); }
+		('summation')
+		{ after(grammarAccess.getAggregationEnumAccess().getSUMEnumLiteralDeclaration_1()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getAggregationEnumAccess().getAGGREGATEEnumLiteralDeclaration_2()); }
+		('aggregate')
+		{ after(grammarAccess.getAggregationEnumAccess().getAGGREGATEEnumLiteralDeclaration_2()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getAggregationEnumAccess().getSTDDEVEnumLiteralDeclaration_3()); }
+		('deviation')
+		{ after(grammarAccess.getAggregationEnumAccess().getSTDDEVEnumLiteralDeclaration_3()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OperatorEnum__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getOperatorEnumAccess().getEQUALSEnumLiteralDeclaration_0()); }
+		('=')
+		{ after(grammarAccess.getOperatorEnumAccess().getEQUALSEnumLiteralDeclaration_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getOperatorEnumAccess().getLESSEnumLiteralDeclaration_1()); }
+		('<')
+		{ after(grammarAccess.getOperatorEnumAccess().getLESSEnumLiteralDeclaration_1()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getOperatorEnumAccess().getGREATEREnumLiteralDeclaration_2()); }
+		('>')
+		{ after(grammarAccess.getOperatorEnumAccess().getGREATEREnumLiteralDeclaration_2()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getOperatorEnumAccess().getLESSEQUALEnumLiteralDeclaration_3()); }
+		('<=')
+		{ after(grammarAccess.getOperatorEnumAccess().getLESSEQUALEnumLiteralDeclaration_3()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getOperatorEnumAccess().getGREATEREQUALEnumLiteralDeclaration_4()); }
+		('>=')
+		{ after(grammarAccess.getOperatorEnumAccess().getGREATEREQUALEnumLiteralDeclaration_4()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getOperatorEnumAccess().getLIKEEnumLiteralDeclaration_5()); }
+		('like')
+		{ after(grammarAccess.getOperatorEnumAccess().getLIKEEnumLiteralDeclaration_5()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SqlAggregationEnum__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getSqlAggregationEnumAccess().getAVGEnumLiteralDeclaration_0()); }
+		('average')
+		{ after(grammarAccess.getSqlAggregationEnumAccess().getAVGEnumLiteralDeclaration_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getSqlAggregationEnumAccess().getSUMEnumLiteralDeclaration_1()); }
+		('summation')
+		{ after(grammarAccess.getSqlAggregationEnumAccess().getSUMEnumLiteralDeclaration_1()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getSqlAggregationEnumAccess().getCOUNTEnumLiteralDeclaration_2()); }
+		('count')
+		{ after(grammarAccess.getSqlAggregationEnumAccess().getCOUNTEnumLiteralDeclaration_2()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ValueScaleEnum__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getValueScaleEnumAccess().getAXISEnumLiteralDeclaration_0()); }
+		('group1')
+		{ after(grammarAccess.getValueScaleEnumAccess().getAXISEnumLiteralDeclaration_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getValueScaleEnumAccess().getAXIS2EnumLiteralDeclaration_1()); }
+		('group2')
+		{ after(grammarAccess.getValueScaleEnumAccess().getAXIS2EnumLiteralDeclaration_1()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getValueScaleEnumAccess().getAXIS3EnumLiteralDeclaration_2()); }
+		('group3')
+		{ after(grammarAccess.getValueScaleEnumAccess().getAXIS3EnumLiteralDeclaration_2()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getValueScaleEnumAccess().getAXIS4EnumLiteralDeclaration_3()); }
+		('group4')
+		{ after(grammarAccess.getValueScaleEnumAccess().getAXIS4EnumLiteralDeclaration_3()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getValueScaleEnumAccess().getAXIS5EnumLiteralDeclaration_4()); }
+		('group5')
+		{ after(grammarAccess.getValueScaleEnumAccess().getAXIS5EnumLiteralDeclaration_4()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getValueScaleEnumAccess().getAXIS6EnumLiteralDeclaration_5()); }
+		('group6')
+		{ after(grammarAccess.getValueScaleEnumAccess().getAXIS6EnumLiteralDeclaration_5()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getValueScaleEnumAccess().getAXIS7EnumLiteralDeclaration_6()); }
+		('group7')
+		{ after(grammarAccess.getValueScaleEnumAccess().getAXIS7EnumLiteralDeclaration_6()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getValueScaleEnumAccess().getAXIS8EnumLiteralDeclaration_7()); }
+		('group8')
+		{ after(grammarAccess.getValueScaleEnumAccess().getAXIS8EnumLiteralDeclaration_7()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getValueScaleEnumAccess().getAXIS9EnumLiteralDeclaration_8()); }
+		('group9')
+		{ after(grammarAccess.getValueScaleEnumAccess().getAXIS9EnumLiteralDeclaration_8()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TaskQueryTopicEnum__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTaskQueryTopicEnumAccess().getQ1EnumLiteralDeclaration_0()); }
+		('BusinessAdministrator')
+		{ after(grammarAccess.getTaskQueryTopicEnumAccess().getQ1EnumLiteralDeclaration_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getTaskQueryTopicEnumAccess().getQ2EnumLiteralDeclaration_1()); }
+		('PotentialOwner')
+		{ after(grammarAccess.getTaskQueryTopicEnumAccess().getQ2EnumLiteralDeclaration_1()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getTaskQueryTopicEnumAccess().getQ3EnumLiteralDeclaration_2()); }
+		('Recipient')
+		{ after(grammarAccess.getTaskQueryTopicEnumAccess().getQ3EnumLiteralDeclaration_2()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getTaskQueryTopicEnumAccess().getQ4EnumLiteralDeclaration_3()); }
+		('TaskInitiator')
+		{ after(grammarAccess.getTaskQueryTopicEnumAccess().getQ4EnumLiteralDeclaration_3()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getTaskQueryTopicEnumAccess().getQ5EnumLiteralDeclaration_4()); }
+		('TaskStakeholder')
+		{ after(grammarAccess.getTaskQueryTopicEnumAccess().getQ5EnumLiteralDeclaration_4()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getTaskQueryTopicEnumAccess().getQ6EnumLiteralDeclaration_5()); }
+		('ExcludedOwner')
+		{ after(grammarAccess.getTaskQueryTopicEnumAccess().getQ6EnumLiteralDeclaration_5()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TaskQueryColumnEnum__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTaskQueryColumnEnumAccess().getP1EnumLiteralDeclaration_0()); }
+		('Name')
+		{ after(grammarAccess.getTaskQueryColumnEnumAccess().getP1EnumLiteralDeclaration_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getTaskQueryColumnEnumAccess().getP2EnumLiteralDeclaration_1()); }
+		('Priority')
+		{ after(grammarAccess.getTaskQueryColumnEnumAccess().getP2EnumLiteralDeclaration_1()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getTaskQueryColumnEnumAccess().getP3EnumLiteralDeclaration_2()); }
+		('Status')
+		{ after(grammarAccess.getTaskQueryColumnEnumAccess().getP3EnumLiteralDeclaration_2()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getTaskQueryColumnEnumAccess().getP4EnumLiteralDeclaration_3()); }
+		('Subject')
+		{ after(grammarAccess.getTaskQueryColumnEnumAccess().getP4EnumLiteralDeclaration_3()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getTaskQueryColumnEnumAccess().getP5EnumLiteralDeclaration_4()); }
+		('Description')
+		{ after(grammarAccess.getTaskQueryColumnEnumAccess().getP5EnumLiteralDeclaration_4()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getTaskQueryColumnEnumAccess().getP6EnumLiteralDeclaration_5()); }
+		('ExpirationTime')
+		{ after(grammarAccess.getTaskQueryColumnEnumAccess().getP6EnumLiteralDeclaration_5()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getTaskQueryColumnEnumAccess().getP7EnumLiteralDeclaration_6()); }
+		('CreatedOn')
+		{ after(grammarAccess.getTaskQueryColumnEnumAccess().getP7EnumLiteralDeclaration_6()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getTaskQueryColumnEnumAccess().getP8EnumLiteralDeclaration_7()); }
+		('CreatedBy')
+		{ after(grammarAccess.getTaskQueryColumnEnumAccess().getP8EnumLiteralDeclaration_7()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getTaskQueryColumnEnumAccess().getP9EnumLiteralDeclaration_8()); }
+		('ActivationTime')
+		{ after(grammarAccess.getTaskQueryColumnEnumAccess().getP9EnumLiteralDeclaration_8()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getTaskQueryColumnEnumAccess().getP10EnumLiteralDeclaration_9()); }
+		('ActualOwner')
+		{ after(grammarAccess.getTaskQueryColumnEnumAccess().getP10EnumLiteralDeclaration_9()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getTaskQueryColumnEnumAccess().getP11EnumLiteralDeclaration_10()); }
+		('TaskId')
+		{ after(grammarAccess.getTaskQueryColumnEnumAccess().getP11EnumLiteralDeclaration_10()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getTaskQueryColumnEnumAccess().getP12EnumLiteralDeclaration_11()); }
+		('ProcessId')
+		{ after(grammarAccess.getTaskQueryColumnEnumAccess().getP12EnumLiteralDeclaration_11()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getTaskQueryColumnEnumAccess().getP13EnumLiteralDeclaration_12()); }
+		('ProcessInstanceId')
+		{ after(grammarAccess.getTaskQueryColumnEnumAccess().getP13EnumLiteralDeclaration_12()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getTaskQueryColumnEnumAccess().getP14EnumLiteralDeclaration_13()); }
+		('ProcessSessionId')
+		{ after(grammarAccess.getTaskQueryColumnEnumAccess().getP14EnumLiteralDeclaration_13()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TaskFilterEnum__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTaskFilterEnumAccess().getF1EnumLiteralDeclaration_0()); }
+		('Groups')
+		{ after(grammarAccess.getTaskFilterEnumAccess().getF1EnumLiteralDeclaration_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getTaskFilterEnumAccess().getF2EnumLiteralDeclaration_1()); }
+		('Users')
+		{ after(grammarAccess.getTaskFilterEnumAccess().getF2EnumLiteralDeclaration_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OrderEnum__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getOrderEnumAccess().getASCEnumLiteralDeclaration_0()); }
+		('ascending')
+		{ after(grammarAccess.getOrderEnumAccess().getASCEnumLiteralDeclaration_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getOrderEnumAccess().getDESCEnumLiteralDeclaration_1()); }
+		('descending')
+		{ after(grammarAccess.getOrderEnumAccess().getDESCEnumLiteralDeclaration_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartModel__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartModel__Group__0__Impl
+	rule__DatamartModel__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartModel__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartModelAccess().getImportSectionAssignment_0()); }
+	(rule__DatamartModel__ImportSectionAssignment_0)?
+	{ after(grammarAccess.getDatamartModelAccess().getImportSectionAssignment_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartModel__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartModel__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartModel__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartModelAccess().getPackagesAssignment_1()); }
+	(rule__DatamartModel__PackagesAssignment_1)*
+	{ after(grammarAccess.getDatamartModelAccess().getPackagesAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartPackage__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartPackage__Group__0__Impl
+	rule__DatamartPackage__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartPackage__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartPackageAccess().getDatamartPackageAction_0()); }
+	()
+	{ after(grammarAccess.getDatamartPackageAccess().getDatamartPackageAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartPackage__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartPackage__Group__1__Impl
+	rule__DatamartPackage__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartPackage__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartPackageAccess().getPackageKeyword_1()); }
+	'package'
+	{ after(grammarAccess.getDatamartPackageAccess().getPackageKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartPackage__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartPackage__Group__2__Impl
+	rule__DatamartPackage__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartPackage__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartPackageAccess().getNameAssignment_2()); }
+	(rule__DatamartPackage__NameAssignment_2)
+	{ after(grammarAccess.getDatamartPackageAccess().getNameAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartPackage__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartPackage__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartPackage__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartPackageAccess().getGroup_3()); }
+	(rule__DatamartPackage__Group_3__0)?
+	{ after(grammarAccess.getDatamartPackageAccess().getGroup_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartPackage__Group_3__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartPackage__Group_3__0__Impl
+	rule__DatamartPackage__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartPackage__Group_3__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartPackageAccess().getLeftCurlyBracketKeyword_3_0()); }
+	'{'
+	{ after(grammarAccess.getDatamartPackageAccess().getLeftCurlyBracketKeyword_3_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartPackage__Group_3__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartPackage__Group_3__1__Impl
+	rule__DatamartPackage__Group_3__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartPackage__Group_3__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartPackageAccess().getDefinitionsAssignment_3_1()); }
+	(rule__DatamartPackage__DefinitionsAssignment_3_1)*
+	{ after(grammarAccess.getDatamartPackageAccess().getDefinitionsAssignment_3_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartPackage__Group_3__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartPackage__Group_3__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartPackage__Group_3__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartPackageAccess().getRightCurlyBracketKeyword_3_2()); }
+	'}'
+	{ after(grammarAccess.getDatamartPackageAccess().getRightCurlyBracketKeyword_3_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartDefinition__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartDefinition__Group__0__Impl
+	rule__DatamartDefinition__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartDefinition__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartDefinitionAccess().getDatamartKeyword_0()); }
+	'datamart'
+	{ after(grammarAccess.getDatamartDefinitionAccess().getDatamartKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartDefinition__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartDefinition__Group__1__Impl
+	rule__DatamartDefinition__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartDefinition__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartDefinitionAccess().getNameAssignment_1()); }
+	(rule__DatamartDefinition__NameAssignment_1)
+	{ after(grammarAccess.getDatamartDefinitionAccess().getNameAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartDefinition__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartDefinition__Group__2__Impl
+	rule__DatamartDefinition__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartDefinition__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartDefinitionAccess().getGroup_2()); }
+	(rule__DatamartDefinition__Group_2__0)?
+	{ after(grammarAccess.getDatamartDefinitionAccess().getGroup_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartDefinition__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartDefinition__Group__3__Impl
+	rule__DatamartDefinition__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartDefinition__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartDefinitionAccess().getGroup_3()); }
+	(rule__DatamartDefinition__Group_3__0)?
+	{ after(grammarAccess.getDatamartDefinitionAccess().getGroup_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartDefinition__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartDefinition__Group__4__Impl
+	rule__DatamartDefinition__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartDefinition__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartDefinitionAccess().getUsingKeyword_4()); }
+	'using'
+	{ after(grammarAccess.getDatamartDefinitionAccess().getUsingKeyword_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartDefinition__Group__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartDefinition__Group__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartDefinition__Group__5__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartDefinitionAccess().getSourceAssignment_5()); }
+	(rule__DatamartDefinition__SourceAssignment_5)
+	{ after(grammarAccess.getDatamartDefinitionAccess().getSourceAssignment_5()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartDefinition__Group_2__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartDefinition__Group_2__0__Impl
+	rule__DatamartDefinition__Group_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartDefinition__Group_2__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartDefinitionAccess().getDescriptionAssignment_2_0()); }
+	(rule__DatamartDefinition__DescriptionAssignment_2_0)
+	{ after(grammarAccess.getDatamartDefinitionAccess().getDescriptionAssignment_2_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartDefinition__Group_2__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartDefinition__Group_2__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartDefinition__Group_2__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartDefinitionAccess().getDescriptionValueAssignment_2_1()); }
+	(rule__DatamartDefinition__DescriptionValueAssignment_2_1)
+	{ after(grammarAccess.getDatamartDefinitionAccess().getDescriptionValueAssignment_2_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartDefinition__Group_3__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartDefinition__Group_3__0__Impl
+	rule__DatamartDefinition__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartDefinition__Group_3__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartDefinitionAccess().getForKeyword_3_0()); }
+	'for'
+	{ after(grammarAccess.getDatamartDefinitionAccess().getForKeyword_3_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartDefinition__Group_3__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartDefinition__Group_3__1__Impl
+	rule__DatamartDefinition__Group_3__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartDefinition__Group_3__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartDefinitionAccess().getLeftCurlyBracketKeyword_3_1()); }
+	'{'
+	{ after(grammarAccess.getDatamartDefinitionAccess().getLeftCurlyBracketKeyword_3_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartDefinition__Group_3__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartDefinition__Group_3__2__Impl
+	rule__DatamartDefinition__Group_3__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartDefinition__Group_3__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartDefinitionAccess().getRolesAssignment_3_2()); }
+	(rule__DatamartDefinition__RolesAssignment_3_2)*
+	{ after(grammarAccess.getDatamartDefinitionAccess().getRolesAssignment_3_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartDefinition__Group_3__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartDefinition__Group_3__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartDefinition__Group_3__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartDefinitionAccess().getRightCurlyBracketKeyword_3_3()); }
+	'}'
+	{ after(grammarAccess.getDatamartDefinitionAccess().getRightCurlyBracketKeyword_3_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartRole__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartRole__Group__0__Impl
+	rule__DatamartRole__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartRole__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartRoleAccess().getRoleKeyword_0()); }
+	'role'
+	{ after(grammarAccess.getDatamartRoleAccess().getRoleKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartRole__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartRole__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartRole__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartRoleAccess().getAssignedRoleAssignment_1()); }
+	(rule__DatamartRole__AssignedRoleAssignment_1)
+	{ after(grammarAccess.getDatamartRoleAccess().getAssignedRoleAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartTask__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartTask__Group__0__Impl
+	rule__DatamartTask__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartTask__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartTaskAccess().getTaskKeyword_0()); }
+	'task'
+	{ after(grammarAccess.getDatamartTaskAccess().getTaskKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartTask__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartTask__Group__1__Impl
+	rule__DatamartTask__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartTask__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartTaskAccess().getTaskQueryAssignment_1()); }
+	(rule__DatamartTask__TaskQueryAssignment_1)
+	{ after(grammarAccess.getDatamartTaskAccess().getTaskQueryAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartTask__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartTask__Group__2__Impl
+	rule__DatamartTask__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartTask__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartTaskAccess().getGroup_2()); }
+	(rule__DatamartTask__Group_2__0)?
+	{ after(grammarAccess.getDatamartTaskAccess().getGroup_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartTask__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartTask__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartTask__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartTaskAccess().getGroup_3()); }
+	(rule__DatamartTask__Group_3__0)?
+	{ after(grammarAccess.getDatamartTaskAccess().getGroup_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartTask__Group_2__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartTask__Group_2__0__Impl
+	rule__DatamartTask__Group_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartTask__Group_2__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartTaskAccess().getColumnsKeyword_2_0()); }
+	'columns'
+	{ after(grammarAccess.getDatamartTaskAccess().getColumnsKeyword_2_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartTask__Group_2__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartTask__Group_2__1__Impl
+	rule__DatamartTask__Group_2__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartTask__Group_2__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartTaskAccess().getLeftCurlyBracketKeyword_2_1()); }
+	'{'
+	{ after(grammarAccess.getDatamartTaskAccess().getLeftCurlyBracketKeyword_2_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartTask__Group_2__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartTask__Group_2__2__Impl
+	rule__DatamartTask__Group_2__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartTask__Group_2__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartTaskAccess().getColumnsAssignment_2_2()); }
+	(rule__DatamartTask__ColumnsAssignment_2_2)*
+	{ after(grammarAccess.getDatamartTaskAccess().getColumnsAssignment_2_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartTask__Group_2__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartTask__Group_2__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartTask__Group_2__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartTaskAccess().getRightCurlyBracketKeyword_2_3()); }
+	'}'
+	{ after(grammarAccess.getDatamartTaskAccess().getRightCurlyBracketKeyword_2_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartTask__Group_3__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartTask__Group_3__0__Impl
+	rule__DatamartTask__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartTask__Group_3__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartTaskAccess().getConditionsKeyword_3_0()); }
+	'conditions'
+	{ after(grammarAccess.getDatamartTaskAccess().getConditionsKeyword_3_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartTask__Group_3__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartTask__Group_3__1__Impl
+	rule__DatamartTask__Group_3__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartTask__Group_3__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartTaskAccess().getLeftCurlyBracketKeyword_3_1()); }
+	'{'
+	{ after(grammarAccess.getDatamartTaskAccess().getLeftCurlyBracketKeyword_3_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartTask__Group_3__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartTask__Group_3__2__Impl
+	rule__DatamartTask__Group_3__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartTask__Group_3__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartTaskAccess().getConditionsAssignment_3_2()); }
+	(rule__DatamartTask__ConditionsAssignment_3_2)*
+	{ after(grammarAccess.getDatamartTaskAccess().getConditionsAssignment_3_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartTask__Group_3__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartTask__Group_3__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartTask__Group_3__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartTaskAccess().getRightCurlyBracketKeyword_3_3()); }
+	'}'
+	{ after(grammarAccess.getDatamartTaskAccess().getRightCurlyBracketKeyword_3_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartColumn__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartColumn__Group__0__Impl
+	rule__DatamartColumn__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartColumn__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartColumnAccess().getColumnKeyword_0()); }
+	'column'
+	{ after(grammarAccess.getDatamartColumnAccess().getColumnKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartColumn__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartColumn__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartColumn__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartColumnAccess().getColumnRefAssignment_1()); }
+	(rule__DatamartColumn__ColumnRefAssignment_1)
+	{ after(grammarAccess.getDatamartColumnAccess().getColumnRefAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartTaskFilter__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartTaskFilter__Group__0__Impl
+	rule__DatamartTaskFilter__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartTaskFilter__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartTaskFilterAccess().getFilterKeyword_0()); }
+	'filter'
+	{ after(grammarAccess.getDatamartTaskFilterAccess().getFilterKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartTaskFilter__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartTaskFilter__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartTaskFilter__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartTaskFilterAccess().getFilterRefAssignment_1()); }
+	(rule__DatamartTaskFilter__FilterRefAssignment_1)
+	{ after(grammarAccess.getDatamartTaskFilterAccess().getFilterRefAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartCube__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartCube__Group__0__Impl
+	rule__DatamartCube__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartCube__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartCubeAccess().getCubeKeyword_0()); }
+	'cube'
+	{ after(grammarAccess.getDatamartCubeAccess().getCubeKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartCube__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartCube__Group__1__Impl
+	rule__DatamartCube__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartCube__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartCubeAccess().getCubeRefAssignment_1()); }
+	(rule__DatamartCube__CubeRefAssignment_1)
+	{ after(grammarAccess.getDatamartCubeAccess().getCubeRefAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartCube__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartCube__Group__2__Impl
+	rule__DatamartCube__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartCube__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartCubeAccess().getNonEmptyAssignment_2()); }
+	(rule__DatamartCube__NonEmptyAssignment_2)?
+	{ after(grammarAccess.getDatamartCubeAccess().getNonEmptyAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartCube__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartCube__Group__3__Impl
+	rule__DatamartCube__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartCube__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartCubeAccess().getLeftCurlyBracketKeyword_3()); }
+	'{'
+	{ after(grammarAccess.getDatamartCubeAccess().getLeftCurlyBracketKeyword_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartCube__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartCube__Group__4__Impl
+	rule__DatamartCube__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartCube__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartCubeAccess().getAxisslicerAssignment_4()); }
+	(rule__DatamartCube__AxisslicerAssignment_4)*
+	{ after(grammarAccess.getDatamartCubeAccess().getAxisslicerAssignment_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartCube__Group__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartCube__Group__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartCube__Group__5__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartCubeAccess().getRightCurlyBracketKeyword_5()); }
+	'}'
+	{ after(grammarAccess.getDatamartCubeAccess().getRightCurlyBracketKeyword_5()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartReference__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartReference__Group__0__Impl
+	rule__DatamartReference__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartReference__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartReferenceAccess().getJoinKeyword_0()); }
+	'join'
+	{ after(grammarAccess.getDatamartReferenceAccess().getJoinKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartReference__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartReference__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartReference__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartReferenceAccess().getRefAssignment_1()); }
+	(rule__DatamartReference__RefAssignment_1)
+	{ after(grammarAccess.getDatamartReferenceAccess().getRefAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartEntity__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartEntity__Group__0__Impl
+	rule__DatamartEntity__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartEntityAccess().getEntityKeyword_0()); }
+	'entity'
+	{ after(grammarAccess.getDatamartEntityAccess().getEntityKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartEntity__Group__1__Impl
+	rule__DatamartEntity__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartEntityAccess().getEntityRefAssignment_1()); }
+	(rule__DatamartEntity__EntityRefAssignment_1)
+	{ after(grammarAccess.getDatamartEntityAccess().getEntityRefAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartEntity__Group__2__Impl
+	rule__DatamartEntity__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartEntityAccess().getTrackingAssignment_2()); }
+	(rule__DatamartEntity__TrackingAssignment_2)?
+	{ after(grammarAccess.getDatamartEntityAccess().getTrackingAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartEntity__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartEntityAccess().getGroup_3()); }
+	(rule__DatamartEntity__Group_3__0)?
+	{ after(grammarAccess.getDatamartEntityAccess().getGroup_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartEntity__Group_3__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartEntity__Group_3__0__Impl
+	rule__DatamartEntity__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartEntityAccess().getLeftCurlyBracketKeyword_3_0()); }
+	'{'
+	{ after(grammarAccess.getDatamartEntityAccess().getLeftCurlyBracketKeyword_3_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartEntity__Group_3__1__Impl
+	rule__DatamartEntity__Group_3__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartEntityAccess().getGroup_3_1()); }
+	(rule__DatamartEntity__Group_3_1__0)?
+	{ after(grammarAccess.getDatamartEntityAccess().getGroup_3_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartEntity__Group_3__2__Impl
+	rule__DatamartEntity__Group_3__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartEntityAccess().getGroup_3_2()); }
+	(rule__DatamartEntity__Group_3_2__0)?
+	{ after(grammarAccess.getDatamartEntityAccess().getGroup_3_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartEntity__Group_3__3__Impl
+	rule__DatamartEntity__Group_3__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartEntityAccess().getGroup_3_3()); }
+	(rule__DatamartEntity__Group_3_3__0)?
+	{ after(grammarAccess.getDatamartEntityAccess().getGroup_3_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartEntity__Group_3__4__Impl
+	rule__DatamartEntity__Group_3__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartEntityAccess().getGroup_3_4()); }
+	(rule__DatamartEntity__Group_3_4__0)?
+	{ after(grammarAccess.getDatamartEntityAccess().getGroup_3_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartEntity__Group_3__5__Impl
+	rule__DatamartEntity__Group_3__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3__5__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartEntityAccess().getGroup_3_5()); }
+	(rule__DatamartEntity__Group_3_5__0)?
+	{ after(grammarAccess.getDatamartEntityAccess().getGroup_3_5()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3__6
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartEntity__Group_3__6__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3__6__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartEntityAccess().getRightCurlyBracketKeyword_3_6()); }
+	'}'
+	{ after(grammarAccess.getDatamartEntityAccess().getRightCurlyBracketKeyword_3_6()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartEntity__Group_3_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartEntity__Group_3_1__0__Impl
+	rule__DatamartEntity__Group_3_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartEntityAccess().getNavigationKeyword_3_1_0()); }
+	'navigation'
+	{ after(grammarAccess.getDatamartEntityAccess().getNavigationKeyword_3_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartEntity__Group_3_1__1__Impl
+	rule__DatamartEntity__Group_3_1__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartEntityAccess().getLeftCurlyBracketKeyword_3_1_1()); }
+	'{'
+	{ after(grammarAccess.getDatamartEntityAccess().getLeftCurlyBracketKeyword_3_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3_1__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartEntity__Group_3_1__2__Impl
+	rule__DatamartEntity__Group_3_1__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3_1__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartEntityAccess().getNavigationsAssignment_3_1_2()); }
+	(rule__DatamartEntity__NavigationsAssignment_3_1_2)*
+	{ after(grammarAccess.getDatamartEntityAccess().getNavigationsAssignment_3_1_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3_1__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartEntity__Group_3_1__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3_1__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartEntityAccess().getRightCurlyBracketKeyword_3_1_3()); }
+	'}'
+	{ after(grammarAccess.getDatamartEntityAccess().getRightCurlyBracketKeyword_3_1_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartEntity__Group_3_2__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartEntity__Group_3_2__0__Impl
+	rule__DatamartEntity__Group_3_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3_2__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartEntityAccess().getAttributesKeyword_3_2_0()); }
+	'attributes'
+	{ after(grammarAccess.getDatamartEntityAccess().getAttributesKeyword_3_2_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3_2__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartEntity__Group_3_2__1__Impl
+	rule__DatamartEntity__Group_3_2__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3_2__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartEntityAccess().getLeftCurlyBracketKeyword_3_2_1()); }
+	'{'
+	{ after(grammarAccess.getDatamartEntityAccess().getLeftCurlyBracketKeyword_3_2_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3_2__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartEntity__Group_3_2__2__Impl
+	rule__DatamartEntity__Group_3_2__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3_2__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartEntityAccess().getAttributesAssignment_3_2_2()); }
+	(rule__DatamartEntity__AttributesAssignment_3_2_2)*
+	{ after(grammarAccess.getDatamartEntityAccess().getAttributesAssignment_3_2_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3_2__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartEntity__Group_3_2__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3_2__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartEntityAccess().getRightCurlyBracketKeyword_3_2_3()); }
+	'}'
+	{ after(grammarAccess.getDatamartEntityAccess().getRightCurlyBracketKeyword_3_2_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartEntity__Group_3_3__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartEntity__Group_3_3__0__Impl
+	rule__DatamartEntity__Group_3_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3_3__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartEntityAccess().getConditionsKeyword_3_3_0()); }
+	'conditions'
+	{ after(grammarAccess.getDatamartEntityAccess().getConditionsKeyword_3_3_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3_3__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartEntity__Group_3_3__1__Impl
+	rule__DatamartEntity__Group_3_3__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3_3__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartEntityAccess().getLeftCurlyBracketKeyword_3_3_1()); }
+	'{'
+	{ after(grammarAccess.getDatamartEntityAccess().getLeftCurlyBracketKeyword_3_3_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3_3__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartEntity__Group_3_3__2__Impl
+	rule__DatamartEntity__Group_3_3__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3_3__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartEntityAccess().getConditionsAssignment_3_3_2()); }
+	(rule__DatamartEntity__ConditionsAssignment_3_3_2)*
+	{ after(grammarAccess.getDatamartEntityAccess().getConditionsAssignment_3_3_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3_3__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartEntity__Group_3_3__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3_3__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartEntityAccess().getRightCurlyBracketKeyword_3_3_3()); }
+	'}'
+	{ after(grammarAccess.getDatamartEntityAccess().getRightCurlyBracketKeyword_3_3_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartEntity__Group_3_4__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartEntity__Group_3_4__0__Impl
+	rule__DatamartEntity__Group_3_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3_4__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartEntityAccess().getOrderingKeyword_3_4_0()); }
+	'ordering'
+	{ after(grammarAccess.getDatamartEntityAccess().getOrderingKeyword_3_4_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3_4__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartEntity__Group_3_4__1__Impl
+	rule__DatamartEntity__Group_3_4__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3_4__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartEntityAccess().getLeftCurlyBracketKeyword_3_4_1()); }
+	'{'
+	{ after(grammarAccess.getDatamartEntityAccess().getLeftCurlyBracketKeyword_3_4_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3_4__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartEntity__Group_3_4__2__Impl
+	rule__DatamartEntity__Group_3_4__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3_4__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartEntityAccess().getOrderingAssignment_3_4_2()); }
+	(rule__DatamartEntity__OrderingAssignment_3_4_2)*
+	{ after(grammarAccess.getDatamartEntityAccess().getOrderingAssignment_3_4_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3_4__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartEntity__Group_3_4__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3_4__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartEntityAccess().getRightCurlyBracketKeyword_3_4_3()); }
+	'}'
+	{ after(grammarAccess.getDatamartEntityAccess().getRightCurlyBracketKeyword_3_4_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartEntity__Group_3_5__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartEntity__Group_3_5__0__Impl
+	rule__DatamartEntity__Group_3_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3_5__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartEntityAccess().getFillerRowsKeyword_3_5_0()); }
+	'fillerRows'
+	{ after(grammarAccess.getDatamartEntityAccess().getFillerRowsKeyword_3_5_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3_5__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartEntity__Group_3_5__1__Impl
+	rule__DatamartEntity__Group_3_5__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3_5__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartEntityAccess().getFillerMinCountRowsAssignment_3_5_1()); }
+	(rule__DatamartEntity__FillerMinCountRowsAssignment_3_5_1)
+	{ after(grammarAccess.getDatamartEntityAccess().getFillerMinCountRowsAssignment_3_5_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3_5__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartEntity__Group_3_5__2__Impl
+	rule__DatamartEntity__Group_3_5__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3_5__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartEntityAccess().getToKeyword_3_5_2()); }
+	'to'
+	{ after(grammarAccess.getDatamartEntityAccess().getToKeyword_3_5_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3_5__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartEntity__Group_3_5__3__Impl
+	rule__DatamartEntity__Group_3_5__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3_5__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartEntityAccess().getFillerMaxCountRowsAssignment_3_5_3()); }
+	(rule__DatamartEntity__FillerMaxCountRowsAssignment_3_5_3)
+	{ after(grammarAccess.getDatamartEntityAccess().getFillerMaxCountRowsAssignment_3_5_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3_5__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartEntity__Group_3_5__4__Impl
+	rule__DatamartEntity__Group_3_5__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3_5__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartEntityAccess().getLeftCurlyBracketKeyword_3_5_4()); }
+	'{'
+	{ after(grammarAccess.getDatamartEntityAccess().getLeftCurlyBracketKeyword_3_5_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3_5__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartEntity__Group_3_5__5__Impl
+	rule__DatamartEntity__Group_3_5__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3_5__5__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartEntityAccess().getFillerDatasAssignment_3_5_5()); }
+	(rule__DatamartEntity__FillerDatasAssignment_3_5_5)*
+	{ after(grammarAccess.getDatamartEntityAccess().getFillerDatasAssignment_3_5_5()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3_5__6
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartEntity__Group_3_5__6__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartEntity__Group_3_5__6__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartEntityAccess().getRightCurlyBracketKeyword_3_5_6()); }
+	'}'
+	{ after(grammarAccess.getDatamartEntityAccess().getRightCurlyBracketKeyword_3_5_6()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartOwner__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartOwner__Group__0__Impl
+	rule__DatamartOwner__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartOwner__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartOwnerAccess().getMany2oneKeyword_0()); }
+	'many2one'
+	{ after(grammarAccess.getDatamartOwnerAccess().getMany2oneKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartOwner__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartOwner__Group__1__Impl
+	rule__DatamartOwner__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartOwner__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartOwnerAccess().getJoinRefAssignment_1()); }
+	(rule__DatamartOwner__JoinRefAssignment_1)
+	{ after(grammarAccess.getDatamartOwnerAccess().getJoinRefAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartOwner__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartOwner__Group__2__Impl
+	rule__DatamartOwner__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartOwner__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartOwnerAccess().getToKeyword_2()); }
+	'to'
+	{ after(grammarAccess.getDatamartOwnerAccess().getToKeyword_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartOwner__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartOwner__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartOwner__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartOwnerAccess().getDatamartEntityAssignment_3()); }
+	(rule__DatamartOwner__DatamartEntityAssignment_3)
+	{ after(grammarAccess.getDatamartOwnerAccess().getDatamartEntityAssignment_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartMember__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartMember__Group__0__Impl
+	rule__DatamartMember__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartMember__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartMemberAccess().getOne2manyKeyword_0()); }
+	'one2many'
+	{ after(grammarAccess.getDatamartMemberAccess().getOne2manyKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartMember__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartMember__Group__1__Impl
+	rule__DatamartMember__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartMember__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartMemberAccess().getJoinRefAssignment_1()); }
+	(rule__DatamartMember__JoinRefAssignment_1)
+	{ after(grammarAccess.getDatamartMemberAccess().getJoinRefAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartMember__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartMember__Group__2__Impl
+	rule__DatamartMember__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartMember__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartMemberAccess().getToKeyword_2()); }
+	'to'
+	{ after(grammarAccess.getDatamartMemberAccess().getToKeyword_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartMember__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartMember__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartMember__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartMemberAccess().getDatamartEntityAssignment_3()); }
+	(rule__DatamartMember__DatamartEntityAssignment_3)
+	{ after(grammarAccess.getDatamartMemberAccess().getDatamartEntityAssignment_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartAxis__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartAxis__Group__0__Impl
+	rule__DatamartAxis__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAxis__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartAxisAccess().getAxisKeyword_0()); }
+	'axis'
+	{ after(grammarAccess.getDatamartAxisAccess().getAxisKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAxis__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartAxis__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAxis__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartAxisAccess().getNameAssignment_1()); }
+	(rule__DatamartAxis__NameAssignment_1)
+	{ after(grammarAccess.getDatamartAxisAccess().getNameAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartAttributeBase__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartAttributeBase__Group__0__Impl
+	rule__DatamartAttributeBase__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAttributeBase__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartAttributeBaseAccess().getAttributeKeyword_0()); }
+	'attribute'
+	{ after(grammarAccess.getDatamartAttributeBaseAccess().getAttributeKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAttributeBase__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartAttributeBase__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAttributeBase__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartAttributeBaseAccess().getAttributeRefAssignment_1()); }
+	(rule__DatamartAttributeBase__AttributeRefAssignment_1)
+	{ after(grammarAccess.getDatamartAttributeBaseAccess().getAttributeRefAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartAttribute__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartAttribute__Group__0__Impl
+	rule__DatamartAttribute__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAttribute__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartAttributeAccess().getAttributeKeyword_0()); }
+	'attribute'
+	{ after(grammarAccess.getDatamartAttributeAccess().getAttributeKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAttribute__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartAttribute__Group__1__Impl
+	rule__DatamartAttribute__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAttribute__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartAttributeAccess().getAttributeRefAssignment_1()); }
+	(rule__DatamartAttribute__AttributeRefAssignment_1)
+	{ after(grammarAccess.getDatamartAttributeAccess().getAttributeRefAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAttribute__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartAttribute__Group__2__Impl
+	rule__DatamartAttribute__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAttribute__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartAttributeAccess().getGroup_2()); }
+	(rule__DatamartAttribute__Group_2__0)?
+	{ after(grammarAccess.getDatamartAttributeAccess().getGroup_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAttribute__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartAttribute__Group__3__Impl
+	rule__DatamartAttribute__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAttribute__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartAttributeAccess().getAxisAssignment_3()); }
+	(rule__DatamartAttribute__AxisAssignment_3)
+	{ after(grammarAccess.getDatamartAttributeAccess().getAxisAssignment_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAttribute__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartAttribute__Group__4__Impl
+	rule__DatamartAttribute__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAttribute__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartAttributeAccess().getGroup_4()); }
+	(rule__DatamartAttribute__Group_4__0)?
+	{ after(grammarAccess.getDatamartAttributeAccess().getGroup_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAttribute__Group__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartAttribute__Group__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAttribute__Group__5__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartAttributeAccess().getUnorderedGroup_5()); }
+	(rule__DatamartAttribute__UnorderedGroup_5)
+	{ after(grammarAccess.getDatamartAttributeAccess().getUnorderedGroup_5()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartAttribute__Group_2__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartAttribute__Group_2__0__Impl
+	rule__DatamartAttribute__Group_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAttribute__Group_2__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartAttributeAccess().getAliasedAssignment_2_0()); }
+	(rule__DatamartAttribute__AliasedAssignment_2_0)
+	{ after(grammarAccess.getDatamartAttributeAccess().getAliasedAssignment_2_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAttribute__Group_2__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartAttribute__Group_2__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAttribute__Group_2__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartAttributeAccess().getAliasNameAssignment_2_1()); }
+	(rule__DatamartAttribute__AliasNameAssignment_2_1)
+	{ after(grammarAccess.getDatamartAttributeAccess().getAliasNameAssignment_2_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartAttribute__Group_4__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartAttribute__Group_4__0__Impl
+	rule__DatamartAttribute__Group_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAttribute__Group_4__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartAttributeAccess().getHasColumnWeightAssignment_4_0()); }
+	(rule__DatamartAttribute__HasColumnWeightAssignment_4_0)
+	{ after(grammarAccess.getDatamartAttributeAccess().getHasColumnWeightAssignment_4_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAttribute__Group_4__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartAttribute__Group_4__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAttribute__Group_4__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartAttributeAccess().getColumnWeightAssignment_4_1()); }
+	(rule__DatamartAttribute__ColumnWeightAssignment_4_1)
+	{ after(grammarAccess.getDatamartAttributeAccess().getColumnWeightAssignment_4_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartAttribute__Group_5_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartAttribute__Group_5_0__0__Impl
+	rule__DatamartAttribute__Group_5_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAttribute__Group_5_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartAttributeAccess().getAggregatedAssignment_5_0_0()); }
+	(rule__DatamartAttribute__AggregatedAssignment_5_0_0)
+	{ after(grammarAccess.getDatamartAttributeAccess().getAggregatedAssignment_5_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAttribute__Group_5_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartAttribute__Group_5_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAttribute__Group_5_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartAttributeAccess().getAggregateAssignment_5_0_1()); }
+	(rule__DatamartAttribute__AggregateAssignment_5_0_1)
+	{ after(grammarAccess.getDatamartAttributeAccess().getAggregateAssignment_5_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartAttribute__Group_5_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartAttribute__Group_5_1__0__Impl
+	rule__DatamartAttribute__Group_5_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAttribute__Group_5_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartAttributeAccess().getScaledAssignment_5_1_0()); }
+	(rule__DatamartAttribute__ScaledAssignment_5_1_0)
+	{ after(grammarAccess.getDatamartAttributeAccess().getScaledAssignment_5_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAttribute__Group_5_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartAttribute__Group_5_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAttribute__Group_5_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartAttributeAccess().getScaleAssignment_5_1_1()); }
+	(rule__DatamartAttribute__ScaleAssignment_5_1_1)
+	{ after(grammarAccess.getDatamartAttributeAccess().getScaleAssignment_5_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartCondition__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartCondition__Group__0__Impl
+	rule__DatamartCondition__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartCondition__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartConditionAccess().getConditionKeyword_0()); }
+	'condition'
+	{ after(grammarAccess.getDatamartConditionAccess().getConditionKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartCondition__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartCondition__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartCondition__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartConditionAccess().getConditionAssignment_1()); }
+	(rule__DatamartCondition__ConditionAssignment_1)
+	{ after(grammarAccess.getDatamartConditionAccess().getConditionAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartOrder__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartOrder__Group__0__Impl
+	rule__DatamartOrder__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartOrder__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartOrderAccess().getOrderKeyword_0()); }
+	'order'
+	{ after(grammarAccess.getDatamartOrderAccess().getOrderKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartOrder__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartOrder__Group__1__Impl
+	rule__DatamartOrder__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartOrder__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartOrderAccess().getOrderByAssignment_1()); }
+	(rule__DatamartOrder__OrderByAssignment_1)
+	{ after(grammarAccess.getDatamartOrderAccess().getOrderByAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartOrder__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartOrder__Group__2__Impl
+	rule__DatamartOrder__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartOrder__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartOrderAccess().getOrderHowAssignment_2()); }
+	(rule__DatamartOrder__OrderHowAssignment_2)
+	{ after(grammarAccess.getDatamartOrderAccess().getOrderHowAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartOrder__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartOrder__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartOrder__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartOrderAccess().getGroup_3()); }
+	(rule__DatamartOrder__Group_3__0)?
+	{ after(grammarAccess.getDatamartOrderAccess().getGroup_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartOrder__Group_3__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartOrder__Group_3__0__Impl
+	rule__DatamartOrder__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartOrder__Group_3__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartOrderAccess().getHasColumnWeightAssignment_3_0()); }
+	(rule__DatamartOrder__HasColumnWeightAssignment_3_0)
+	{ after(grammarAccess.getDatamartOrderAccess().getHasColumnWeightAssignment_3_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartOrder__Group_3__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartOrder__Group_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartOrder__Group_3__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartOrderAccess().getColumnWeightAssignment_3_1()); }
+	(rule__DatamartOrder__ColumnWeightAssignment_3_1)
+	{ after(grammarAccess.getDatamartOrderAccess().getColumnWeightAssignment_3_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartDisjunction__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartDisjunction__Group__0__Impl
+	rule__DatamartDisjunction__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartDisjunction__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartDisjunctionAccess().getDatamartConjunctionParserRuleCall_0()); }
+	ruleDatamartConjunction
+	{ after(grammarAccess.getDatamartDisjunctionAccess().getDatamartConjunctionParserRuleCall_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartDisjunction__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartDisjunction__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartDisjunction__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartDisjunctionAccess().getGroup_1()); }
+	(rule__DatamartDisjunction__Group_1__0)*
+	{ after(grammarAccess.getDatamartDisjunctionAccess().getGroup_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartDisjunction__Group_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartDisjunction__Group_1__0__Impl
+	rule__DatamartDisjunction__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartDisjunction__Group_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartDisjunctionAccess().getGroup_1_0()); }
+	(rule__DatamartDisjunction__Group_1_0__0)
+	{ after(grammarAccess.getDatamartDisjunctionAccess().getGroup_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartDisjunction__Group_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartDisjunction__Group_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartDisjunction__Group_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartDisjunctionAccess().getRightAssignment_1_1()); }
+	(rule__DatamartDisjunction__RightAssignment_1_1)
+	{ after(grammarAccess.getDatamartDisjunctionAccess().getRightAssignment_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartDisjunction__Group_1_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartDisjunction__Group_1_0__0__Impl
+	rule__DatamartDisjunction__Group_1_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartDisjunction__Group_1_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartDisjunctionAccess().getDisjunctionLeftAction_1_0_0()); }
+	()
+	{ after(grammarAccess.getDatamartDisjunctionAccess().getDisjunctionLeftAction_1_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartDisjunction__Group_1_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartDisjunction__Group_1_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartDisjunction__Group_1_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartDisjunctionAccess().getOrKeyword_1_0_1()); }
+	'or'
+	{ after(grammarAccess.getDatamartDisjunctionAccess().getOrKeyword_1_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartConjunction__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartConjunction__Group__0__Impl
+	rule__DatamartConjunction__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartConjunction__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartConjunctionAccess().getDatamartConditionalExpressionParserRuleCall_0()); }
+	ruleDatamartConditionalExpression
+	{ after(grammarAccess.getDatamartConjunctionAccess().getDatamartConditionalExpressionParserRuleCall_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartConjunction__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartConjunction__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartConjunction__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartConjunctionAccess().getGroup_1()); }
+	(rule__DatamartConjunction__Group_1__0)*
+	{ after(grammarAccess.getDatamartConjunctionAccess().getGroup_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartConjunction__Group_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartConjunction__Group_1__0__Impl
+	rule__DatamartConjunction__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartConjunction__Group_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartConjunctionAccess().getGroup_1_0()); }
+	(rule__DatamartConjunction__Group_1_0__0)
+	{ after(grammarAccess.getDatamartConjunctionAccess().getGroup_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartConjunction__Group_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartConjunction__Group_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartConjunction__Group_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartConjunctionAccess().getRightAssignment_1_1()); }
+	(rule__DatamartConjunction__RightAssignment_1_1)
+	{ after(grammarAccess.getDatamartConjunctionAccess().getRightAssignment_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartConjunction__Group_1_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartConjunction__Group_1_0__0__Impl
+	rule__DatamartConjunction__Group_1_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartConjunction__Group_1_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartConjunctionAccess().getConjunctionLeftAction_1_0_0()); }
+	()
+	{ after(grammarAccess.getDatamartConjunctionAccess().getConjunctionLeftAction_1_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartConjunction__Group_1_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartConjunction__Group_1_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartConjunction__Group_1_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartConjunctionAccess().getAndKeyword_1_0_1()); }
+	'and'
+	{ after(grammarAccess.getDatamartConjunctionAccess().getAndKeyword_1_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartConditionalExpression__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartConditionalExpression__Group__0__Impl
+	rule__DatamartConditionalExpression__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartConditionalExpression__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartConditionalExpressionAccess().getDatamartOperandParserRuleCall_0()); }
+	ruleDatamartOperand
+	{ after(grammarAccess.getDatamartConditionalExpressionAccess().getDatamartOperandParserRuleCall_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartConditionalExpression__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartConditionalExpression__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartConditionalExpression__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartConditionalExpressionAccess().getGroup_1()); }
+	(rule__DatamartConditionalExpression__Group_1__0)*
+	{ after(grammarAccess.getDatamartConditionalExpressionAccess().getGroup_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartConditionalExpression__Group_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartConditionalExpression__Group_1__0__Impl
+	rule__DatamartConditionalExpression__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartConditionalExpression__Group_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartConditionalExpressionAccess().getGroup_1_0()); }
+	(rule__DatamartConditionalExpression__Group_1_0__0)
+	{ after(grammarAccess.getDatamartConditionalExpressionAccess().getGroup_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartConditionalExpression__Group_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartConditionalExpression__Group_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartConditionalExpression__Group_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartConditionalExpressionAccess().getRightAssignment_1_1()); }
+	(rule__DatamartConditionalExpression__RightAssignment_1_1)
+	{ after(grammarAccess.getDatamartConditionalExpressionAccess().getRightAssignment_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartConditionalExpression__Group_1_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartConditionalExpression__Group_1_0__0__Impl
+	rule__DatamartConditionalExpression__Group_1_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartConditionalExpression__Group_1_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartConditionalExpressionAccess().getConditionalExpressionLeftAction_1_0_0()); }
+	()
+	{ after(grammarAccess.getDatamartConditionalExpressionAccess().getConditionalExpressionLeftAction_1_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartConditionalExpression__Group_1_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartConditionalExpression__Group_1_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartConditionalExpression__Group_1_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartConditionalExpressionAccess().getOperatorAssignment_1_0_1()); }
+	(rule__DatamartConditionalExpression__OperatorAssignment_1_0_1)
+	{ after(grammarAccess.getDatamartConditionalExpressionAccess().getOperatorAssignment_1_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartOperand__Group_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartOperand__Group_1__0__Impl
+	rule__DatamartOperand__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartOperand__Group_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartOperandAccess().getLeftParenthesisKeyword_1_0()); }
+	'('
+	{ after(grammarAccess.getDatamartOperandAccess().getLeftParenthesisKeyword_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartOperand__Group_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartOperand__Group_1__1__Impl
+	rule__DatamartOperand__Group_1__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartOperand__Group_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartOperandAccess().getDatamartDisjunctionParserRuleCall_1_1()); }
+	ruleDatamartDisjunction
+	{ after(grammarAccess.getDatamartOperandAccess().getDatamartDisjunctionParserRuleCall_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartOperand__Group_1__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartOperand__Group_1__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartOperand__Group_1__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartOperandAccess().getRightParenthesisKeyword_1_2()); }
+	')'
+	{ after(grammarAccess.getDatamartOperandAccess().getRightParenthesisKeyword_1_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartValue__Group_2_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartValue__Group_2_0__0__Impl
+	rule__DatamartValue__Group_2_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartValue__Group_2_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartValueAccess().getFilteredAssignment_2_0_0()); }
+	(rule__DatamartValue__FilteredAssignment_2_0_0)
+	{ after(grammarAccess.getDatamartValueAccess().getFilteredAssignment_2_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartValue__Group_2_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartValue__Group_2_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartValue__Group_2_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartValueAccess().getOptionalAssignment_2_0_1()); }
+	(rule__DatamartValue__OptionalAssignment_2_0_1)?
+	{ after(grammarAccess.getDatamartValueAccess().getOptionalAssignment_2_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartDefineDerivedMeasure__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartDefineDerivedMeasure__Group__0__Impl
+	rule__DatamartDefineDerivedMeasure__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartDefineDerivedMeasure__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartDefineDerivedMeasureAccess().getDeriveKeyword_0()); }
+	'derive'
+	{ after(grammarAccess.getDatamartDefineDerivedMeasureAccess().getDeriveKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartDefineDerivedMeasure__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartDefineDerivedMeasure__Group__1__Impl
+	rule__DatamartDefineDerivedMeasure__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartDefineDerivedMeasure__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartDefineDerivedMeasureAccess().getNameAssignment_1()); }
+	(rule__DatamartDefineDerivedMeasure__NameAssignment_1)
+	{ after(grammarAccess.getDatamartDefineDerivedMeasureAccess().getNameAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartDefineDerivedMeasure__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartDefineDerivedMeasure__Group__2__Impl
+	rule__DatamartDefineDerivedMeasure__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartDefineDerivedMeasure__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartDefineDerivedMeasureAccess().getFromKeyword_2()); }
+	'from'
+	{ after(grammarAccess.getDatamartDefineDerivedMeasureAccess().getFromKeyword_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartDefineDerivedMeasure__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartDefineDerivedMeasure__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartDefineDerivedMeasure__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartDefineDerivedMeasureAccess().getDerivedElementAssignment_3()); }
+	(rule__DatamartDefineDerivedMeasure__DerivedElementAssignment_3)*
+	{ after(grammarAccess.getDatamartDefineDerivedMeasureAccess().getDerivedElementAssignment_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartAddition__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartAddition__Group__0__Impl
+	rule__DatamartAddition__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAddition__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartAdditionAccess().getDatamartMultiplicationParserRuleCall_0()); }
+	ruleDatamartMultiplication
+	{ after(grammarAccess.getDatamartAdditionAccess().getDatamartMultiplicationParserRuleCall_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAddition__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartAddition__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAddition__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartAdditionAccess().getGroup_1()); }
+	(rule__DatamartAddition__Group_1__0)*
+	{ after(grammarAccess.getDatamartAdditionAccess().getGroup_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartAddition__Group_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartAddition__Group_1__0__Impl
+	rule__DatamartAddition__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAddition__Group_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartAdditionAccess().getAlternatives_1_0()); }
+	(rule__DatamartAddition__Alternatives_1_0)
+	{ after(grammarAccess.getDatamartAdditionAccess().getAlternatives_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAddition__Group_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartAddition__Group_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAddition__Group_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartAdditionAccess().getRightAssignment_1_1()); }
+	(rule__DatamartAddition__RightAssignment_1_1)
+	{ after(grammarAccess.getDatamartAdditionAccess().getRightAssignment_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartAddition__Group_1_0_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartAddition__Group_1_0_0__0__Impl
+	rule__DatamartAddition__Group_1_0_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAddition__Group_1_0_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartAdditionAccess().getAdditionLeftAction_1_0_0_0()); }
+	()
+	{ after(grammarAccess.getDatamartAdditionAccess().getAdditionLeftAction_1_0_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAddition__Group_1_0_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartAddition__Group_1_0_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAddition__Group_1_0_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartAdditionAccess().getPlusSignKeyword_1_0_0_1()); }
+	'+'
+	{ after(grammarAccess.getDatamartAdditionAccess().getPlusSignKeyword_1_0_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartAddition__Group_1_0_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartAddition__Group_1_0_1__0__Impl
+	rule__DatamartAddition__Group_1_0_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAddition__Group_1_0_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartAdditionAccess().getSubtractionLeftAction_1_0_1_0()); }
+	()
+	{ after(grammarAccess.getDatamartAdditionAccess().getSubtractionLeftAction_1_0_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAddition__Group_1_0_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartAddition__Group_1_0_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAddition__Group_1_0_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartAdditionAccess().getHyphenMinusKeyword_1_0_1_1()); }
+	'-'
+	{ after(grammarAccess.getDatamartAdditionAccess().getHyphenMinusKeyword_1_0_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartMultiplication__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartMultiplication__Group__0__Impl
+	rule__DatamartMultiplication__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartMultiplication__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartMultiplicationAccess().getDatamartPrimaryParserRuleCall_0()); }
+	ruleDatamartPrimary
+	{ after(grammarAccess.getDatamartMultiplicationAccess().getDatamartPrimaryParserRuleCall_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartMultiplication__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartMultiplication__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartMultiplication__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartMultiplicationAccess().getGroup_1()); }
+	(rule__DatamartMultiplication__Group_1__0)*
+	{ after(grammarAccess.getDatamartMultiplicationAccess().getGroup_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartMultiplication__Group_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartMultiplication__Group_1__0__Impl
+	rule__DatamartMultiplication__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartMultiplication__Group_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartMultiplicationAccess().getAlternatives_1_0()); }
+	(rule__DatamartMultiplication__Alternatives_1_0)
+	{ after(grammarAccess.getDatamartMultiplicationAccess().getAlternatives_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartMultiplication__Group_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartMultiplication__Group_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartMultiplication__Group_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartMultiplicationAccess().getRightAssignment_1_1()); }
+	(rule__DatamartMultiplication__RightAssignment_1_1)
+	{ after(grammarAccess.getDatamartMultiplicationAccess().getRightAssignment_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartMultiplication__Group_1_0_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartMultiplication__Group_1_0_0__0__Impl
+	rule__DatamartMultiplication__Group_1_0_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartMultiplication__Group_1_0_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartMultiplicationAccess().getMultiplicationLeftAction_1_0_0_0()); }
+	()
+	{ after(grammarAccess.getDatamartMultiplicationAccess().getMultiplicationLeftAction_1_0_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartMultiplication__Group_1_0_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartMultiplication__Group_1_0_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartMultiplication__Group_1_0_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartMultiplicationAccess().getAsteriskKeyword_1_0_0_1()); }
+	'*'
+	{ after(grammarAccess.getDatamartMultiplicationAccess().getAsteriskKeyword_1_0_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartMultiplication__Group_1_0_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartMultiplication__Group_1_0_1__0__Impl
+	rule__DatamartMultiplication__Group_1_0_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartMultiplication__Group_1_0_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartMultiplicationAccess().getDivisionLeftAction_1_0_1_0()); }
+	()
+	{ after(grammarAccess.getDatamartMultiplicationAccess().getDivisionLeftAction_1_0_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartMultiplication__Group_1_0_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartMultiplication__Group_1_0_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartMultiplication__Group_1_0_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartMultiplicationAccess().getSolidusKeyword_1_0_1_1()); }
+	'/'
+	{ after(grammarAccess.getDatamartMultiplicationAccess().getSolidusKeyword_1_0_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartPrimary__Group_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartPrimary__Group_1__0__Impl
+	rule__DatamartPrimary__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartPrimary__Group_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartPrimaryAccess().getLeftParenthesisKeyword_1_0()); }
+	'('
+	{ after(grammarAccess.getDatamartPrimaryAccess().getLeftParenthesisKeyword_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartPrimary__Group_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartPrimary__Group_1__1__Impl
+	rule__DatamartPrimary__Group_1__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartPrimary__Group_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartPrimaryAccess().getDatamartAdditionParserRuleCall_1_1()); }
+	ruleDatamartAddition
+	{ after(grammarAccess.getDatamartPrimaryAccess().getDatamartAdditionParserRuleCall_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartPrimary__Group_1__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartPrimary__Group_1__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartPrimary__Group_1__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartPrimaryAccess().getRightParenthesisKeyword_1_2()); }
+	')'
+	{ after(grammarAccess.getDatamartPrimaryAccess().getRightParenthesisKeyword_1_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartMemberTuple__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartMemberTuple__Group__0__Impl
+	rule__DatamartMemberTuple__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartMemberTuple__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartMemberTupleAccess().getGroup_0()); }
+	(rule__DatamartMemberTuple__Group_0__0)?
+	{ after(grammarAccess.getDatamartMemberTupleAccess().getGroup_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartMemberTuple__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartMemberTuple__Group__1__Impl
+	rule__DatamartMemberTuple__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartMemberTuple__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartMemberTupleAccess().getHierarchyAssignment_1()); }
+	(rule__DatamartMemberTuple__HierarchyAssignment_1)
+	{ after(grammarAccess.getDatamartMemberTupleAccess().getHierarchyAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartMemberTuple__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartMemberTuple__Group__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartMemberTuple__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartMemberTupleAccess().getGroup_2()); }
+	(rule__DatamartMemberTuple__Group_2__0)
+	{ after(grammarAccess.getDatamartMemberTupleAccess().getGroup_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartMemberTuple__Group_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartMemberTuple__Group_0__0__Impl
+	rule__DatamartMemberTuple__Group_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartMemberTuple__Group_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartMemberTupleAccess().getAlternatives_0_0()); }
+	(rule__DatamartMemberTuple__Alternatives_0_0)
+	{ after(grammarAccess.getDatamartMemberTupleAccess().getAlternatives_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartMemberTuple__Group_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartMemberTuple__Group_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartMemberTuple__Group_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartMemberTupleAccess().getOfKeyword_0_1()); }
+	'of'
+	{ after(grammarAccess.getDatamartMemberTupleAccess().getOfKeyword_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartMemberTuple__Group_2__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartMemberTuple__Group_2__0__Impl
+	rule__DatamartMemberTuple__Group_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartMemberTuple__Group_2__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartMemberTupleAccess().getDatamartMemberTupleLeftAction_2_0()); }
+	()
+	{ after(grammarAccess.getDatamartMemberTupleAccess().getDatamartMemberTupleLeftAction_2_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartMemberTuple__Group_2__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartMemberTuple__Group_2__1__Impl
+	rule__DatamartMemberTuple__Group_2__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartMemberTuple__Group_2__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartMemberTupleAccess().getOverKeyword_2_1()); }
+	'over'
+	{ after(grammarAccess.getDatamartMemberTupleAccess().getOverKeyword_2_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartMemberTuple__Group_2__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartMemberTuple__Group_2__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartMemberTuple__Group_2__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartMemberTupleAccess().getRightAssignment_2_2()); }
+	(rule__DatamartMemberTuple__RightAssignment_2_2)
+	{ after(grammarAccess.getDatamartMemberTupleAccess().getRightAssignment_2_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartParameterFunction__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartParameterFunction__Group__0__Impl
+	rule__DatamartParameterFunction__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartParameterFunction__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartParameterFunctionAccess().getFunctionAssignment_0()); }
+	(rule__DatamartParameterFunction__FunctionAssignment_0)
+	{ after(grammarAccess.getDatamartParameterFunctionAccess().getFunctionAssignment_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartParameterFunction__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartParameterFunction__Group__1__Impl
+	rule__DatamartParameterFunction__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartParameterFunction__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartParameterFunctionAccess().getLeftParenthesisKeyword_1()); }
+	'('
+	{ after(grammarAccess.getDatamartParameterFunctionAccess().getLeftParenthesisKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartParameterFunction__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartParameterFunction__Group__2__Impl
+	rule__DatamartParameterFunction__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartParameterFunction__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartParameterFunctionAccess().getParameterAssignment_2()); }
+	(rule__DatamartParameterFunction__ParameterAssignment_2)
+	{ after(grammarAccess.getDatamartParameterFunctionAccess().getParameterAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartParameterFunction__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartParameterFunction__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartParameterFunction__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartParameterFunctionAccess().getRightParenthesisKeyword_3()); }
+	')'
+	{ after(grammarAccess.getDatamartParameterFunctionAccess().getRightParenthesisKeyword_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartSetParameterFunction__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartSetParameterFunction__Group__0__Impl
+	rule__DatamartSetParameterFunction__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartSetParameterFunction__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartSetParameterFunctionAccess().getSetFunctionAssignment_0()); }
+	(rule__DatamartSetParameterFunction__SetFunctionAssignment_0)
+	{ after(grammarAccess.getDatamartSetParameterFunctionAccess().getSetFunctionAssignment_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartSetParameterFunction__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartSetParameterFunction__Group__1__Impl
+	rule__DatamartSetParameterFunction__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartSetParameterFunction__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartSetParameterFunctionAccess().getLeftParenthesisKeyword_1()); }
+	'('
+	{ after(grammarAccess.getDatamartSetParameterFunctionAccess().getLeftParenthesisKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartSetParameterFunction__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartSetParameterFunction__Group__2__Impl
+	rule__DatamartSetParameterFunction__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartSetParameterFunction__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartSetParameterFunctionAccess().getParameterAssignment_2()); }
+	(rule__DatamartSetParameterFunction__ParameterAssignment_2)
+	{ after(grammarAccess.getDatamartSetParameterFunctionAccess().getParameterAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartSetParameterFunction__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartSetParameterFunction__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartSetParameterFunction__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartSetParameterFunctionAccess().getRightParenthesisKeyword_3()); }
+	')'
+	{ after(grammarAccess.getDatamartSetParameterFunctionAccess().getRightParenthesisKeyword_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartSetAggregationFunction__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartSetAggregationFunction__Group__0__Impl
+	rule__DatamartSetAggregationFunction__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartSetAggregationFunction__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartSetAggregationFunctionAccess().getAggregationAssignment_0()); }
+	(rule__DatamartSetAggregationFunction__AggregationAssignment_0)
+	{ after(grammarAccess.getDatamartSetAggregationFunctionAccess().getAggregationAssignment_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartSetAggregationFunction__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartSetAggregationFunction__Group__1__Impl
+	rule__DatamartSetAggregationFunction__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartSetAggregationFunction__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartSetAggregationFunctionAccess().getLeftParenthesisKeyword_1()); }
+	'('
+	{ after(grammarAccess.getDatamartSetAggregationFunctionAccess().getLeftParenthesisKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartSetAggregationFunction__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartSetAggregationFunction__Group__2__Impl
+	rule__DatamartSetAggregationFunction__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartSetAggregationFunction__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartSetAggregationFunctionAccess().getParameterAssignment_2()); }
+	(rule__DatamartSetAggregationFunction__ParameterAssignment_2)
+	{ after(grammarAccess.getDatamartSetAggregationFunctionAccess().getParameterAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartSetAggregationFunction__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartSetAggregationFunction__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartSetAggregationFunction__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartSetAggregationFunctionAccess().getRightParenthesisKeyword_3()); }
+	')'
+	{ after(grammarAccess.getDatamartSetAggregationFunctionAccess().getRightParenthesisKeyword_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartSetTuple__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartSetTuple__Group__0__Impl
+	rule__DatamartSetTuple__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartSetTuple__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartSetTupleAccess().getAlternatives_0()); }
+	(rule__DatamartSetTuple__Alternatives_0)
+	{ after(grammarAccess.getDatamartSetTupleAccess().getAlternatives_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartSetTuple__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartSetTuple__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartSetTuple__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartSetTupleAccess().getGroup_1()); }
+	(rule__DatamartSetTuple__Group_1__0)
+	{ after(grammarAccess.getDatamartSetTupleAccess().getGroup_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartSetTuple__Group_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartSetTuple__Group_1__0__Impl
+	rule__DatamartSetTuple__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartSetTuple__Group_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartSetTupleAccess().getDatamartSetTupleLeftAction_1_0()); }
+	()
+	{ after(grammarAccess.getDatamartSetTupleAccess().getDatamartSetTupleLeftAction_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartSetTuple__Group_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartSetTuple__Group_1__1__Impl
+	rule__DatamartSetTuple__Group_1__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartSetTuple__Group_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartSetTupleAccess().getOfKeyword_1_1()); }
+	'of'
+	{ after(grammarAccess.getDatamartSetTupleAccess().getOfKeyword_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartSetTuple__Group_1__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartSetTuple__Group_1__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartSetTuple__Group_1__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartSetTupleAccess().getRightAssignment_1_2()); }
+	(rule__DatamartSetTuple__RightAssignment_1_2)
+	{ after(grammarAccess.getDatamartSetTupleAccess().getRightAssignment_1_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartAggregation__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartAggregation__Group__0__Impl
+	rule__DatamartAggregation__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAggregation__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartAggregationAccess().getAggregationAssignment_0()); }
+	(rule__DatamartAggregation__AggregationAssignment_0)
+	{ after(grammarAccess.getDatamartAggregationAccess().getAggregationAssignment_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAggregation__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartAggregation__Group__1__Impl
+	rule__DatamartAggregation__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAggregation__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartAggregationAccess().getOfKeyword_1()); }
+	'of'
+	{ after(grammarAccess.getDatamartAggregationAccess().getOfKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAggregation__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartAggregation__Group__2__Impl
+	rule__DatamartAggregation__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAggregation__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartAggregationAccess().getAlternatives_2()); }
+	(rule__DatamartAggregation__Alternatives_2)
+	{ after(grammarAccess.getDatamartAggregationAccess().getAlternatives_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAggregation__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartAggregation__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAggregation__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartAggregationAccess().getGroup_3()); }
+	(rule__DatamartAggregation__Group_3__0)
+	{ after(grammarAccess.getDatamartAggregationAccess().getGroup_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartAggregation__Group_3__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartAggregation__Group_3__0__Impl
+	rule__DatamartAggregation__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAggregation__Group_3__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartAggregationAccess().getDatamartAggregationLeftAction_3_0()); }
+	()
+	{ after(grammarAccess.getDatamartAggregationAccess().getDatamartAggregationLeftAction_3_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAggregation__Group_3__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartAggregation__Group_3__1__Impl
+	rule__DatamartAggregation__Group_3__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAggregation__Group_3__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartAggregationAccess().getOverKeyword_3_1()); }
+	'over'
+	{ after(grammarAccess.getDatamartAggregationAccess().getOverKeyword_3_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAggregation__Group_3__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartAggregation__Group_3__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartAggregation__Group_3__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartAggregationAccess().getRightAssignment_3_2()); }
+	(rule__DatamartAggregation__RightAssignment_3_2)
+	{ after(grammarAccess.getDatamartAggregationAccess().getRightAssignment_3_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartSetAggregation__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartSetAggregation__Group__0__Impl
+	rule__DatamartSetAggregation__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartSetAggregation__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartSetAggregationAccess().getAggregationAssignment_0()); }
+	(rule__DatamartSetAggregation__AggregationAssignment_0)
+	{ after(grammarAccess.getDatamartSetAggregationAccess().getAggregationAssignment_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartSetAggregation__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartSetAggregation__Group__1__Impl
+	rule__DatamartSetAggregation__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartSetAggregation__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartSetAggregationAccess().getOfKeyword_1()); }
+	'of'
+	{ after(grammarAccess.getDatamartSetAggregationAccess().getOfKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartSetAggregation__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartSetAggregation__Group__2__Impl
+	rule__DatamartSetAggregation__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartSetAggregation__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartSetAggregationAccess().getAlternatives_2()); }
+	(rule__DatamartSetAggregation__Alternatives_2)
+	{ after(grammarAccess.getDatamartSetAggregationAccess().getAlternatives_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartSetAggregation__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartSetAggregation__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartSetAggregation__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartSetAggregationAccess().getGroup_3()); }
+	(rule__DatamartSetAggregation__Group_3__0)
+	{ after(grammarAccess.getDatamartSetAggregationAccess().getGroup_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartSetAggregation__Group_3__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartSetAggregation__Group_3__0__Impl
+	rule__DatamartSetAggregation__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartSetAggregation__Group_3__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartSetAggregationAccess().getDatamartSetAggregationLeftAction_3_0()); }
+	()
+	{ after(grammarAccess.getDatamartSetAggregationAccess().getDatamartSetAggregationLeftAction_3_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartSetAggregation__Group_3__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartSetAggregation__Group_3__1__Impl
+	rule__DatamartSetAggregation__Group_3__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartSetAggregation__Group_3__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartSetAggregationAccess().getOverKeyword_3_1()); }
+	'over'
+	{ after(grammarAccess.getDatamartSetAggregationAccess().getOverKeyword_3_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartSetAggregation__Group_3__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartSetAggregation__Group_3__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartSetAggregation__Group_3__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartSetAggregationAccess().getRightAssignment_3_2()); }
+	(rule__DatamartSetAggregation__RightAssignment_3_2)
+	{ after(grammarAccess.getDatamartSetAggregationAccess().getRightAssignment_3_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartSlicer__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartSlicer__Group__0__Impl
+	rule__DatamartSlicer__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartSlicer__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartSlicerAccess().getSlicerKeyword_0()); }
+	'slicer'
+	{ after(grammarAccess.getDatamartSlicerAccess().getSlicerKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartSlicer__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartSlicer__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartSlicer__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartSlicerAccess().getElementAssignment_1()); }
+	(rule__DatamartSlicer__ElementAssignment_1)
+	{ after(grammarAccess.getDatamartSlicerAccess().getElementAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartCubeAxis__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartCubeAxis__Group__0__Impl
+	rule__DatamartCubeAxis__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartCubeAxis__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartCubeAxisAccess().getDatamartCubeAxisAction_0()); }
+	()
+	{ after(grammarAccess.getDatamartCubeAxisAccess().getDatamartCubeAxisAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartCubeAxis__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartCubeAxis__Group__1__Impl
+	rule__DatamartCubeAxis__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartCubeAxis__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartCubeAxisAccess().getAxisAssignment_1()); }
+	(rule__DatamartCubeAxis__AxisAssignment_1)
+	{ after(grammarAccess.getDatamartCubeAxisAccess().getAxisAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartCubeAxis__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartCubeAxis__Group__2__Impl
+	rule__DatamartCubeAxis__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartCubeAxis__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartCubeAxisAccess().getLeftCurlyBracketKeyword_2()); }
+	'{'
+	{ after(grammarAccess.getDatamartCubeAxisAccess().getLeftCurlyBracketKeyword_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartCubeAxis__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartCubeAxis__Group__3__Impl
+	rule__DatamartCubeAxis__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartCubeAxis__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartCubeAxisAccess().getElementsAssignment_3()); }
+	(rule__DatamartCubeAxis__ElementsAssignment_3)*
+	{ after(grammarAccess.getDatamartCubeAxisAccess().getElementsAssignment_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartCubeAxis__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartCubeAxis__Group__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartCubeAxis__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartCubeAxisAccess().getRightCurlyBracketKeyword_4()); }
+	'}'
+	{ after(grammarAccess.getDatamartCubeAxisAccess().getRightCurlyBracketKeyword_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartDerivedMeasure__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartDerivedMeasure__Group__0__Impl
+	rule__DatamartDerivedMeasure__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartDerivedMeasure__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartDerivedMeasureAccess().getDerivedKeyword_0()); }
+	'derived'
+	{ after(grammarAccess.getDatamartDerivedMeasureAccess().getDerivedKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartDerivedMeasure__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartDerivedMeasure__Group__1__Impl
+	rule__DatamartDerivedMeasure__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartDerivedMeasure__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartDerivedMeasureAccess().getDerivedRefAssignment_1()); }
+	(rule__DatamartDerivedMeasure__DerivedRefAssignment_1)
+	{ after(grammarAccess.getDatamartDerivedMeasureAccess().getDerivedRefAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartDerivedMeasure__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartDerivedMeasure__Group__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartDerivedMeasure__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartDerivedMeasureAccess().getGroup_2()); }
+	(rule__DatamartDerivedMeasure__Group_2__0)?
+	{ after(grammarAccess.getDatamartDerivedMeasureAccess().getGroup_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartDerivedMeasure__Group_2__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartDerivedMeasure__Group_2__0__Impl
+	rule__DatamartDerivedMeasure__Group_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartDerivedMeasure__Group_2__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartDerivedMeasureAccess().getScaledAssignment_2_0()); }
+	(rule__DatamartDerivedMeasure__ScaledAssignment_2_0)
+	{ after(grammarAccess.getDatamartDerivedMeasureAccess().getScaledAssignment_2_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartDerivedMeasure__Group_2__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartDerivedMeasure__Group_2__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartDerivedMeasure__Group_2__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartDerivedMeasureAccess().getScaleAssignment_2_1()); }
+	(rule__DatamartDerivedMeasure__ScaleAssignment_2_1)
+	{ after(grammarAccess.getDatamartDerivedMeasureAccess().getScaleAssignment_2_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartMeasure__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartMeasure__Group__0__Impl
+	rule__DatamartMeasure__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartMeasure__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartMeasureAccess().getMeasureKeyword_0()); }
+	'measure'
+	{ after(grammarAccess.getDatamartMeasureAccess().getMeasureKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartMeasure__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartMeasure__Group__1__Impl
+	rule__DatamartMeasure__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartMeasure__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartMeasureAccess().getMeasureRefAssignment_1()); }
+	(rule__DatamartMeasure__MeasureRefAssignment_1)
+	{ after(grammarAccess.getDatamartMeasureAccess().getMeasureRefAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartMeasure__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartMeasure__Group__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartMeasure__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartMeasureAccess().getGroup_2()); }
+	(rule__DatamartMeasure__Group_2__0)?
+	{ after(grammarAccess.getDatamartMeasureAccess().getGroup_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartMeasure__Group_2__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartMeasure__Group_2__0__Impl
+	rule__DatamartMeasure__Group_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartMeasure__Group_2__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartMeasureAccess().getScaledAssignment_2_0()); }
+	(rule__DatamartMeasure__ScaledAssignment_2_0)
+	{ after(grammarAccess.getDatamartMeasureAccess().getScaledAssignment_2_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartMeasure__Group_2__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartMeasure__Group_2__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartMeasure__Group_2__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartMeasureAccess().getScaleAssignment_2_1()); }
+	(rule__DatamartMeasure__ScaleAssignment_2_1)
+	{ after(grammarAccess.getDatamartMeasureAccess().getScaleAssignment_2_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartHierarchy__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartHierarchy__Group__0__Impl
+	rule__DatamartHierarchy__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartHierarchy__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartHierarchyAccess().getHierarchyKeyword_0()); }
+	'hierarchy'
+	{ after(grammarAccess.getDatamartHierarchyAccess().getHierarchyKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartHierarchy__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartHierarchy__Group__1__Impl
+	rule__DatamartHierarchy__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartHierarchy__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartHierarchyAccess().getHierarchyRefAssignment_1()); }
+	(rule__DatamartHierarchy__HierarchyRefAssignment_1)
+	{ after(grammarAccess.getDatamartHierarchyAccess().getHierarchyRefAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartHierarchy__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartHierarchy__Group__2__Impl
+	rule__DatamartHierarchy__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartHierarchy__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartHierarchyAccess().getDefaultMemberAssignment_2()); }
+	(rule__DatamartHierarchy__DefaultMemberAssignment_2)?
+	{ after(grammarAccess.getDatamartHierarchyAccess().getDefaultMemberAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartHierarchy__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartHierarchy__Group__3__Impl
+	rule__DatamartHierarchy__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartHierarchy__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartHierarchyAccess().getAllMemberAssignment_3()); }
+	(rule__DatamartHierarchy__AllMemberAssignment_3)?
+	{ after(grammarAccess.getDatamartHierarchyAccess().getAllMemberAssignment_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartHierarchy__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartHierarchy__Group__4__Impl
+	rule__DatamartHierarchy__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartHierarchy__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartHierarchyAccess().getAllLevelsAssignment_4()); }
+	(rule__DatamartHierarchy__AllLevelsAssignment_4)?
+	{ after(grammarAccess.getDatamartHierarchyAccess().getAllLevelsAssignment_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartHierarchy__Group__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartHierarchy__Group__5__Impl
+	rule__DatamartHierarchy__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartHierarchy__Group__5__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartHierarchyAccess().getGroup_5()); }
+	(rule__DatamartHierarchy__Group_5__0)?
+	{ after(grammarAccess.getDatamartHierarchyAccess().getGroup_5()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartHierarchy__Group__6
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartHierarchy__Group__6__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartHierarchy__Group__6__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartHierarchyAccess().getGroup_6()); }
+	(rule__DatamartHierarchy__Group_6__0)?
+	{ after(grammarAccess.getDatamartHierarchyAccess().getGroup_6()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartHierarchy__Group_5__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartHierarchy__Group_5__0__Impl
+	rule__DatamartHierarchy__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartHierarchy__Group_5__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartHierarchyAccess().getLevelKeyword_5_0()); }
+	'level'
+	{ after(grammarAccess.getDatamartHierarchyAccess().getLevelKeyword_5_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartHierarchy__Group_5__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartHierarchy__Group_5__1__Impl
+	rule__DatamartHierarchy__Group_5__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartHierarchy__Group_5__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartHierarchyAccess().getLevelRefAssignment_5_1()); }
+	(rule__DatamartHierarchy__LevelRefAssignment_5_1)
+	{ after(grammarAccess.getDatamartHierarchyAccess().getLevelRefAssignment_5_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartHierarchy__Group_5__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartHierarchy__Group_5__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartHierarchy__Group_5__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartHierarchyAccess().getAlternatives_5_2()); }
+	(rule__DatamartHierarchy__Alternatives_5_2)?
+	{ after(grammarAccess.getDatamartHierarchyAccess().getAlternatives_5_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartHierarchy__Group_6__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartHierarchy__Group_6__0__Impl
+	rule__DatamartHierarchy__Group_6__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartHierarchy__Group_6__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartHierarchyAccess().getAllAssignment_6_0()); }
+	(rule__DatamartHierarchy__AllAssignment_6_0)
+	{ after(grammarAccess.getDatamartHierarchyAccess().getAllAssignment_6_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartHierarchy__Group_6__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartHierarchy__Group_6__1__Impl
+	rule__DatamartHierarchy__Group_6__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartHierarchy__Group_6__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartHierarchyAccess().getGroup_6_1()); }
+	(rule__DatamartHierarchy__Group_6_1__0)?
+	{ after(grammarAccess.getDatamartHierarchyAccess().getGroup_6_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartHierarchy__Group_6__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartHierarchy__Group_6__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartHierarchy__Group_6__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartHierarchyAccess().getGroup_6_2()); }
+	(rule__DatamartHierarchy__Group_6_2__0)?
+	{ after(grammarAccess.getDatamartHierarchyAccess().getGroup_6_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartHierarchy__Group_6_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartHierarchy__Group_6_1__0__Impl
+	rule__DatamartHierarchy__Group_6_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartHierarchy__Group_6_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartHierarchyAccess().getExceptAssignment_6_1_0()); }
+	(rule__DatamartHierarchy__ExceptAssignment_6_1_0)
+	{ after(grammarAccess.getDatamartHierarchyAccess().getExceptAssignment_6_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartHierarchy__Group_6_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartHierarchy__Group_6_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartHierarchy__Group_6_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartHierarchyAccess().getExceptRefAssignment_6_1_1()); }
+	(rule__DatamartHierarchy__ExceptRefAssignment_6_1_1)
+	{ after(grammarAccess.getDatamartHierarchyAccess().getExceptRefAssignment_6_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DatamartHierarchy__Group_6_2__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartHierarchy__Group_6_2__0__Impl
+	rule__DatamartHierarchy__Group_6_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartHierarchy__Group_6_2__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartHierarchyAccess().getOrderedAssignment_6_2_0()); }
+	(rule__DatamartHierarchy__OrderedAssignment_6_2_0)
+	{ after(grammarAccess.getDatamartHierarchyAccess().getOrderedAssignment_6_2_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartHierarchy__Group_6_2__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartHierarchy__Group_6_2__1__Impl
+	rule__DatamartHierarchy__Group_6_2__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartHierarchy__Group_6_2__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartHierarchyAccess().getOrderRefAssignment_6_2_1()); }
+	(rule__DatamartHierarchy__OrderRefAssignment_6_2_1)
+	{ after(grammarAccess.getDatamartHierarchyAccess().getOrderRefAssignment_6_2_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartHierarchy__Group_6_2__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DatamartHierarchy__Group_6_2__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartHierarchy__Group_6_2__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDatamartHierarchyAccess().getDescendingAssignment_6_2_2()); }
+	(rule__DatamartHierarchy__DescendingAssignment_6_2_2)?
+	{ after(grammarAccess.getDatamartHierarchyAccess().getDescendingAssignment_6_2_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AttributeFillerData__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerData__Group__0__Impl
+	rule__AttributeFillerData__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerData__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerDataAccess().getFillKeyword_0()); }
+	'fill'
+	{ after(grammarAccess.getAttributeFillerDataAccess().getFillKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerData__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerData__Group__1__Impl
+	rule__AttributeFillerData__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerData__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerDataAccess().getAttributeRefAssignment_1()); }
+	(rule__AttributeFillerData__AttributeRefAssignment_1)
+	{ after(grammarAccess.getAttributeFillerDataAccess().getAttributeRefAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerData__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerData__Group__2__Impl
+	rule__AttributeFillerData__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerData__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerDataAccess().getWithKeyword_2()); }
+	'with'
+	{ after(grammarAccess.getAttributeFillerDataAccess().getWithKeyword_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerData__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerData__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerData__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerDataAccess().getFillerTypeAssignment_3()); }
+	(rule__AttributeFillerData__FillerTypeAssignment_3)
+	{ after(grammarAccess.getAttributeFillerDataAccess().getFillerTypeAssignment_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AttributeFillerDateFuture__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerDateFuture__Group__0__Impl
+	rule__AttributeFillerDateFuture__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerDateFuture__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerDateFutureAccess().getFillerDateFutureKeyword_0()); }
+	'filler-date-future'
+	{ after(grammarAccess.getAttributeFillerDateFutureAccess().getFillerDateFutureKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerDateFuture__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerDateFuture__Group__1__Impl
+	rule__AttributeFillerDateFuture__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerDateFuture__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerDateFutureAccess().getDateFutureYearsAssignment_1()); }
+	(rule__AttributeFillerDateFuture__DateFutureYearsAssignment_1)
+	{ after(grammarAccess.getAttributeFillerDateFutureAccess().getDateFutureYearsAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerDateFuture__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerDateFuture__Group__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerDateFuture__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerDateFutureAccess().getYearsKeyword_2()); }
+	'years'
+	{ after(grammarAccess.getAttributeFillerDateFutureAccess().getYearsKeyword_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AttributeFillerDatePast__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerDatePast__Group__0__Impl
+	rule__AttributeFillerDatePast__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerDatePast__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerDatePastAccess().getFillerDatePastKeyword_0()); }
+	'filler-date-past'
+	{ after(grammarAccess.getAttributeFillerDatePastAccess().getFillerDatePastKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerDatePast__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerDatePast__Group__1__Impl
+	rule__AttributeFillerDatePast__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerDatePast__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerDatePastAccess().getDatePastYearsAssignment_1()); }
+	(rule__AttributeFillerDatePast__DatePastYearsAssignment_1)
+	{ after(grammarAccess.getAttributeFillerDatePastAccess().getDatePastYearsAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerDatePast__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerDatePast__Group__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerDatePast__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerDatePastAccess().getYearsKeyword_2()); }
+	'years'
+	{ after(grammarAccess.getAttributeFillerDatePastAccess().getYearsKeyword_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AttributeFillerDateRange__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerDateRange__Group__0__Impl
+	rule__AttributeFillerDateRange__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerDateRange__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerDateRangeAccess().getFillerDateRangeKeyword_0()); }
+	'filler-date-range'
+	{ after(grammarAccess.getAttributeFillerDateRangeAccess().getFillerDateRangeKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerDateRange__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerDateRange__Group__1__Impl
+	rule__AttributeFillerDateRange__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerDateRange__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerDateRangeAccess().getDateBeginYearsAssignment_1()); }
+	(rule__AttributeFillerDateRange__DateBeginYearsAssignment_1)
+	{ after(grammarAccess.getAttributeFillerDateRangeAccess().getDateBeginYearsAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerDateRange__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerDateRange__Group__2__Impl
+	rule__AttributeFillerDateRange__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerDateRange__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerDateRangeAccess().getUpToIncludingKeyword_2()); }
+	'upToIncluding'
+	{ after(grammarAccess.getAttributeFillerDateRangeAccess().getUpToIncludingKeyword_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerDateRange__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerDateRange__Group__3__Impl
+	rule__AttributeFillerDateRange__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerDateRange__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerDateRangeAccess().getDateEndYearsAssignment_3()); }
+	(rule__AttributeFillerDateRange__DateEndYearsAssignment_3)
+	{ after(grammarAccess.getAttributeFillerDateRangeAccess().getDateEndYearsAssignment_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerDateRange__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerDateRange__Group__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerDateRange__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerDateRangeAccess().getYearsKeyword_4()); }
+	'years'
+	{ after(grammarAccess.getAttributeFillerDateRangeAccess().getYearsKeyword_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AttributeFillerSignedDoubleRange__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerSignedDoubleRange__Group__0__Impl
+	rule__AttributeFillerSignedDoubleRange__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedDoubleRange__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerSignedDoubleRangeAccess().getFillerSignedDoubleRangeKeyword_0()); }
+	'filler-signed-double-range'
+	{ after(grammarAccess.getAttributeFillerSignedDoubleRangeAccess().getFillerSignedDoubleRangeKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedDoubleRange__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerSignedDoubleRange__Group__1__Impl
+	rule__AttributeFillerSignedDoubleRange__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedDoubleRange__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerSignedDoubleRangeAccess().getGroup_1()); }
+	(rule__AttributeFillerSignedDoubleRange__Group_1__0)?
+	{ after(grammarAccess.getAttributeFillerSignedDoubleRangeAccess().getGroup_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedDoubleRange__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerSignedDoubleRange__Group__2__Impl
+	rule__AttributeFillerSignedDoubleRange__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedDoubleRange__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerSignedDoubleRangeAccess().getWithKeyword_2()); }
+	'with'
+	{ after(grammarAccess.getAttributeFillerSignedDoubleRangeAccess().getWithKeyword_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedDoubleRange__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerSignedDoubleRange__Group__3__Impl
+	rule__AttributeFillerSignedDoubleRange__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedDoubleRange__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerSignedDoubleRangeAccess().getDecimalsAssignment_3()); }
+	(rule__AttributeFillerSignedDoubleRange__DecimalsAssignment_3)
+	{ after(grammarAccess.getAttributeFillerSignedDoubleRangeAccess().getDecimalsAssignment_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedDoubleRange__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerSignedDoubleRange__Group__4__Impl
+	rule__AttributeFillerSignedDoubleRange__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedDoubleRange__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerSignedDoubleRangeAccess().getDecimalsKeyword_4()); }
+	'decimals'
+	{ after(grammarAccess.getAttributeFillerSignedDoubleRangeAccess().getDecimalsKeyword_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedDoubleRange__Group__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerSignedDoubleRange__Group__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedDoubleRange__Group__5__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerSignedDoubleRangeAccess().getGroup_5()); }
+	(rule__AttributeFillerSignedDoubleRange__Group_5__0)?
+	{ after(grammarAccess.getAttributeFillerSignedDoubleRangeAccess().getGroup_5()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AttributeFillerSignedDoubleRange__Group_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerSignedDoubleRange__Group_1__0__Impl
+	rule__AttributeFillerSignedDoubleRange__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedDoubleRange__Group_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerSignedDoubleRangeAccess().getAlternatives_1_0()); }
+	(rule__AttributeFillerSignedDoubleRange__Alternatives_1_0)?
+	{ after(grammarAccess.getAttributeFillerSignedDoubleRangeAccess().getAlternatives_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedDoubleRange__Group_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerSignedDoubleRange__Group_1__1__Impl
+	rule__AttributeFillerSignedDoubleRange__Group_1__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedDoubleRange__Group_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerSignedDoubleRangeAccess().getUpToIncludingKeyword_1_1()); }
+	'upToIncluding'
+	{ after(grammarAccess.getAttributeFillerSignedDoubleRangeAccess().getUpToIncludingKeyword_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedDoubleRange__Group_1__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerSignedDoubleRange__Group_1__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedDoubleRange__Group_1__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerSignedDoubleRangeAccess().getAlternatives_1_2()); }
+	(rule__AttributeFillerSignedDoubleRange__Alternatives_1_2)
+	{ after(grammarAccess.getAttributeFillerSignedDoubleRangeAccess().getAlternatives_1_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AttributeFillerSignedDoubleRange__Group_5__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerSignedDoubleRange__Group_5__0__Impl
+	rule__AttributeFillerSignedDoubleRange__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedDoubleRange__Group_5__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerSignedDoubleRangeAccess().getRoundedKeyword_5_0()); }
+	'rounded'
+	{ after(grammarAccess.getAttributeFillerSignedDoubleRangeAccess().getRoundedKeyword_5_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedDoubleRange__Group_5__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerSignedDoubleRange__Group_5__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedDoubleRange__Group_5__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerSignedDoubleRangeAccess().getRoundedAssignment_5_1()); }
+	(rule__AttributeFillerSignedDoubleRange__RoundedAssignment_5_1)
+	{ after(grammarAccess.getAttributeFillerSignedDoubleRangeAccess().getRoundedAssignment_5_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AttributeFillerSignedDoubleRandom__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerSignedDoubleRandom__Group__0__Impl
+	rule__AttributeFillerSignedDoubleRandom__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedDoubleRandom__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerSignedDoubleRandomAccess().getFillerSignedDoubleRandomKeyword_0()); }
+	'filler-signed-double-random'
+	{ after(grammarAccess.getAttributeFillerSignedDoubleRandomAccess().getFillerSignedDoubleRandomKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedDoubleRandom__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerSignedDoubleRandom__Group__1__Impl
+	rule__AttributeFillerSignedDoubleRandom__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedDoubleRandom__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerSignedDoubleRandomAccess().getLeftParenthesisKeyword_1()); }
+	'('
+	{ after(grammarAccess.getAttributeFillerSignedDoubleRandomAccess().getLeftParenthesisKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedDoubleRandom__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerSignedDoubleRandom__Group__2__Impl
+	rule__AttributeFillerSignedDoubleRandom__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedDoubleRandom__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	(
+		{ before(grammarAccess.getAttributeFillerSignedDoubleRandomAccess().getItemsAssignment_2()); }
+		(rule__AttributeFillerSignedDoubleRandom__ItemsAssignment_2)
+		{ after(grammarAccess.getAttributeFillerSignedDoubleRandomAccess().getItemsAssignment_2()); }
+	)
+	(
+		{ before(grammarAccess.getAttributeFillerSignedDoubleRandomAccess().getItemsAssignment_2()); }
+		(rule__AttributeFillerSignedDoubleRandom__ItemsAssignment_2)*
+		{ after(grammarAccess.getAttributeFillerSignedDoubleRandomAccess().getItemsAssignment_2()); }
+	)
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedDoubleRandom__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerSignedDoubleRandom__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedDoubleRandom__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerSignedDoubleRandomAccess().getRightParenthesisKeyword_3()); }
+	')'
+	{ after(grammarAccess.getAttributeFillerSignedDoubleRandomAccess().getRightParenthesisKeyword_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AttributeFillerSignedIntegerRange__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerSignedIntegerRange__Group__0__Impl
+	rule__AttributeFillerSignedIntegerRange__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedIntegerRange__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerSignedIntegerRangeAccess().getAttributeFillerSignedIntegerRangeAction_0()); }
+	()
+	{ after(grammarAccess.getAttributeFillerSignedIntegerRangeAccess().getAttributeFillerSignedIntegerRangeAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedIntegerRange__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerSignedIntegerRange__Group__1__Impl
+	rule__AttributeFillerSignedIntegerRange__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedIntegerRange__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerSignedIntegerRangeAccess().getFillerSignedIntegerRangeKeyword_1()); }
+	'filler-signed-integer-range'
+	{ after(grammarAccess.getAttributeFillerSignedIntegerRangeAccess().getFillerSignedIntegerRangeKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedIntegerRange__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerSignedIntegerRange__Group__2__Impl
+	rule__AttributeFillerSignedIntegerRange__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedIntegerRange__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerSignedIntegerRangeAccess().getGroup_2()); }
+	(rule__AttributeFillerSignedIntegerRange__Group_2__0)?
+	{ after(grammarAccess.getAttributeFillerSignedIntegerRangeAccess().getGroup_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedIntegerRange__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerSignedIntegerRange__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedIntegerRange__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerSignedIntegerRangeAccess().getGroup_3()); }
+	(rule__AttributeFillerSignedIntegerRange__Group_3__0)?
+	{ after(grammarAccess.getAttributeFillerSignedIntegerRangeAccess().getGroup_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AttributeFillerSignedIntegerRange__Group_2__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerSignedIntegerRange__Group_2__0__Impl
+	rule__AttributeFillerSignedIntegerRange__Group_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedIntegerRange__Group_2__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerSignedIntegerRangeAccess().getAlternatives_2_0()); }
+	(rule__AttributeFillerSignedIntegerRange__Alternatives_2_0)?
+	{ after(grammarAccess.getAttributeFillerSignedIntegerRangeAccess().getAlternatives_2_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedIntegerRange__Group_2__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerSignedIntegerRange__Group_2__1__Impl
+	rule__AttributeFillerSignedIntegerRange__Group_2__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedIntegerRange__Group_2__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerSignedIntegerRangeAccess().getUpToIncludingKeyword_2_1()); }
+	'upToIncluding'
+	{ after(grammarAccess.getAttributeFillerSignedIntegerRangeAccess().getUpToIncludingKeyword_2_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedIntegerRange__Group_2__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerSignedIntegerRange__Group_2__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedIntegerRange__Group_2__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerSignedIntegerRangeAccess().getAlternatives_2_2()); }
+	(rule__AttributeFillerSignedIntegerRange__Alternatives_2_2)
+	{ after(grammarAccess.getAttributeFillerSignedIntegerRangeAccess().getAlternatives_2_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AttributeFillerSignedIntegerRange__Group_3__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerSignedIntegerRange__Group_3__0__Impl
+	rule__AttributeFillerSignedIntegerRange__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedIntegerRange__Group_3__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerSignedIntegerRangeAccess().getRoundedKeyword_3_0()); }
+	'rounded'
+	{ after(grammarAccess.getAttributeFillerSignedIntegerRangeAccess().getRoundedKeyword_3_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedIntegerRange__Group_3__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerSignedIntegerRange__Group_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedIntegerRange__Group_3__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerSignedIntegerRangeAccess().getRoundedAssignment_3_1()); }
+	(rule__AttributeFillerSignedIntegerRange__RoundedAssignment_3_1)
+	{ after(grammarAccess.getAttributeFillerSignedIntegerRangeAccess().getRoundedAssignment_3_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AttributeFillerSignedIntegerRandom__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerSignedIntegerRandom__Group__0__Impl
+	rule__AttributeFillerSignedIntegerRandom__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedIntegerRandom__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerSignedIntegerRandomAccess().getFillerSignedIntegerRandomKeyword_0()); }
+	'filler-signed-integer-random'
+	{ after(grammarAccess.getAttributeFillerSignedIntegerRandomAccess().getFillerSignedIntegerRandomKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedIntegerRandom__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerSignedIntegerRandom__Group__1__Impl
+	rule__AttributeFillerSignedIntegerRandom__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedIntegerRandom__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerSignedIntegerRandomAccess().getLeftParenthesisKeyword_1()); }
+	'('
+	{ after(grammarAccess.getAttributeFillerSignedIntegerRandomAccess().getLeftParenthesisKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedIntegerRandom__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerSignedIntegerRandom__Group__2__Impl
+	rule__AttributeFillerSignedIntegerRandom__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedIntegerRandom__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	(
+		{ before(grammarAccess.getAttributeFillerSignedIntegerRandomAccess().getItemsAssignment_2()); }
+		(rule__AttributeFillerSignedIntegerRandom__ItemsAssignment_2)
+		{ after(grammarAccess.getAttributeFillerSignedIntegerRandomAccess().getItemsAssignment_2()); }
+	)
+	(
+		{ before(grammarAccess.getAttributeFillerSignedIntegerRandomAccess().getItemsAssignment_2()); }
+		(rule__AttributeFillerSignedIntegerRandom__ItemsAssignment_2)*
+		{ after(grammarAccess.getAttributeFillerSignedIntegerRandomAccess().getItemsAssignment_2()); }
+	)
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedIntegerRandom__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerSignedIntegerRandom__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerSignedIntegerRandom__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerSignedIntegerRandomAccess().getRightParenthesisKeyword_3()); }
+	')'
+	{ after(grammarAccess.getAttributeFillerSignedIntegerRandomAccess().getRightParenthesisKeyword_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AttributeFillerTextRandom__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerTextRandom__Group__0__Impl
+	rule__AttributeFillerTextRandom__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerTextRandom__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerTextRandomAccess().getFillerTextRandomKeyword_0()); }
+	'filler-text-random'
+	{ after(grammarAccess.getAttributeFillerTextRandomAccess().getFillerTextRandomKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerTextRandom__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerTextRandom__Group__1__Impl
+	rule__AttributeFillerTextRandom__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerTextRandom__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerTextRandomAccess().getLeftParenthesisKeyword_1()); }
+	'('
+	{ after(grammarAccess.getAttributeFillerTextRandomAccess().getLeftParenthesisKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerTextRandom__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerTextRandom__Group__2__Impl
+	rule__AttributeFillerTextRandom__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerTextRandom__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	(
+		{ before(grammarAccess.getAttributeFillerTextRandomAccess().getItemsAssignment_2()); }
+		(rule__AttributeFillerTextRandom__ItemsAssignment_2)
+		{ after(grammarAccess.getAttributeFillerTextRandomAccess().getItemsAssignment_2()); }
+	)
+	(
+		{ before(grammarAccess.getAttributeFillerTextRandomAccess().getItemsAssignment_2()); }
+		(rule__AttributeFillerTextRandom__ItemsAssignment_2)*
+		{ after(grammarAccess.getAttributeFillerTextRandomAccess().getItemsAssignment_2()); }
+	)
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerTextRandom__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerTextRandom__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerTextRandom__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerTextRandomAccess().getRightParenthesisKeyword_3()); }
+	')'
+	{ after(grammarAccess.getAttributeFillerTextRandomAccess().getRightParenthesisKeyword_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AttributeFillerTextParagraphs__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerTextParagraphs__Group__0__Impl
+	rule__AttributeFillerTextParagraphs__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerTextParagraphs__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerTextParagraphsAccess().getAttributeFillerTextParagraphsAction_0()); }
+	()
+	{ after(grammarAccess.getAttributeFillerTextParagraphsAccess().getAttributeFillerTextParagraphsAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerTextParagraphs__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerTextParagraphs__Group__1__Impl
+	rule__AttributeFillerTextParagraphs__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerTextParagraphs__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerTextParagraphsAccess().getFillerTextParagraphsKeyword_1()); }
+	'filler-text-paragraphs'
+	{ after(grammarAccess.getAttributeFillerTextParagraphsAccess().getFillerTextParagraphsKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerTextParagraphs__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerTextParagraphs__Group__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerTextParagraphs__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerTextParagraphsAccess().getCountAssignment_2()); }
+	(rule__AttributeFillerTextParagraphs__CountAssignment_2)?
+	{ after(grammarAccess.getAttributeFillerTextParagraphsAccess().getCountAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AttributeFillerTextSentences__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerTextSentences__Group__0__Impl
+	rule__AttributeFillerTextSentences__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerTextSentences__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerTextSentencesAccess().getAttributeFillerTextSentencesAction_0()); }
+	()
+	{ after(grammarAccess.getAttributeFillerTextSentencesAccess().getAttributeFillerTextSentencesAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerTextSentences__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerTextSentences__Group__1__Impl
+	rule__AttributeFillerTextSentences__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerTextSentences__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerTextSentencesAccess().getFillerTextSentencesKeyword_1()); }
+	'filler-text-sentences'
+	{ after(grammarAccess.getAttributeFillerTextSentencesAccess().getFillerTextSentencesKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerTextSentences__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerTextSentences__Group__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerTextSentences__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerTextSentencesAccess().getCountAssignment_2()); }
+	(rule__AttributeFillerTextSentences__CountAssignment_2)?
+	{ after(grammarAccess.getAttributeFillerTextSentencesAccess().getCountAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AttributeFillerTextWords__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerTextWords__Group__0__Impl
+	rule__AttributeFillerTextWords__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerTextWords__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerTextWordsAccess().getAttributeFillerTextWordsAction_0()); }
+	()
+	{ after(grammarAccess.getAttributeFillerTextWordsAccess().getAttributeFillerTextWordsAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerTextWords__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerTextWords__Group__1__Impl
+	rule__AttributeFillerTextWords__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerTextWords__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerTextWordsAccess().getFillerTextWordsKeyword_1()); }
+	'filler-text-words'
+	{ after(grammarAccess.getAttributeFillerTextWordsAccess().getFillerTextWordsKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerTextWords__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerTextWords__Group__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerTextWords__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerTextWordsAccess().getCountAssignment_2()); }
+	(rule__AttributeFillerTextWords__CountAssignment_2)?
+	{ after(grammarAccess.getAttributeFillerTextWordsAccess().getCountAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AttributeFillerUnsignedDoubleRange__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerUnsignedDoubleRange__Group__0__Impl
+	rule__AttributeFillerUnsignedDoubleRange__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedDoubleRange__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerUnsignedDoubleRangeAccess().getFillerUnsignedDoubleRangeKeyword_0()); }
+	'filler-unsigned-double-range'
+	{ after(grammarAccess.getAttributeFillerUnsignedDoubleRangeAccess().getFillerUnsignedDoubleRangeKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedDoubleRange__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerUnsignedDoubleRange__Group__1__Impl
+	rule__AttributeFillerUnsignedDoubleRange__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedDoubleRange__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerUnsignedDoubleRangeAccess().getGroup_1()); }
+	(rule__AttributeFillerUnsignedDoubleRange__Group_1__0)?
+	{ after(grammarAccess.getAttributeFillerUnsignedDoubleRangeAccess().getGroup_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedDoubleRange__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerUnsignedDoubleRange__Group__2__Impl
+	rule__AttributeFillerUnsignedDoubleRange__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedDoubleRange__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerUnsignedDoubleRangeAccess().getWithKeyword_2()); }
+	'with'
+	{ after(grammarAccess.getAttributeFillerUnsignedDoubleRangeAccess().getWithKeyword_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedDoubleRange__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerUnsignedDoubleRange__Group__3__Impl
+	rule__AttributeFillerUnsignedDoubleRange__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedDoubleRange__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerUnsignedDoubleRangeAccess().getDecimalsAssignment_3()); }
+	(rule__AttributeFillerUnsignedDoubleRange__DecimalsAssignment_3)
+	{ after(grammarAccess.getAttributeFillerUnsignedDoubleRangeAccess().getDecimalsAssignment_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedDoubleRange__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerUnsignedDoubleRange__Group__4__Impl
+	rule__AttributeFillerUnsignedDoubleRange__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedDoubleRange__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerUnsignedDoubleRangeAccess().getDecimalsKeyword_4()); }
+	'decimals'
+	{ after(grammarAccess.getAttributeFillerUnsignedDoubleRangeAccess().getDecimalsKeyword_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedDoubleRange__Group__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerUnsignedDoubleRange__Group__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedDoubleRange__Group__5__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerUnsignedDoubleRangeAccess().getGroup_5()); }
+	(rule__AttributeFillerUnsignedDoubleRange__Group_5__0)?
+	{ after(grammarAccess.getAttributeFillerUnsignedDoubleRangeAccess().getGroup_5()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AttributeFillerUnsignedDoubleRange__Group_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerUnsignedDoubleRange__Group_1__0__Impl
+	rule__AttributeFillerUnsignedDoubleRange__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedDoubleRange__Group_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerUnsignedDoubleRangeAccess().getAlternatives_1_0()); }
+	(rule__AttributeFillerUnsignedDoubleRange__Alternatives_1_0)?
+	{ after(grammarAccess.getAttributeFillerUnsignedDoubleRangeAccess().getAlternatives_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedDoubleRange__Group_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerUnsignedDoubleRange__Group_1__1__Impl
+	rule__AttributeFillerUnsignedDoubleRange__Group_1__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedDoubleRange__Group_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerUnsignedDoubleRangeAccess().getUpToIncludingKeyword_1_1()); }
+	'upToIncluding'
+	{ after(grammarAccess.getAttributeFillerUnsignedDoubleRangeAccess().getUpToIncludingKeyword_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedDoubleRange__Group_1__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerUnsignedDoubleRange__Group_1__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedDoubleRange__Group_1__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerUnsignedDoubleRangeAccess().getAlternatives_1_2()); }
+	(rule__AttributeFillerUnsignedDoubleRange__Alternatives_1_2)
+	{ after(grammarAccess.getAttributeFillerUnsignedDoubleRangeAccess().getAlternatives_1_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AttributeFillerUnsignedDoubleRange__Group_5__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerUnsignedDoubleRange__Group_5__0__Impl
+	rule__AttributeFillerUnsignedDoubleRange__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedDoubleRange__Group_5__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerUnsignedDoubleRangeAccess().getRoundedKeyword_5_0()); }
+	'rounded'
+	{ after(grammarAccess.getAttributeFillerUnsignedDoubleRangeAccess().getRoundedKeyword_5_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedDoubleRange__Group_5__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerUnsignedDoubleRange__Group_5__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedDoubleRange__Group_5__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerUnsignedDoubleRangeAccess().getRoundedAssignment_5_1()); }
+	(rule__AttributeFillerUnsignedDoubleRange__RoundedAssignment_5_1)
+	{ after(grammarAccess.getAttributeFillerUnsignedDoubleRangeAccess().getRoundedAssignment_5_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AttributeFillerUnsignedDoubleRandom__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerUnsignedDoubleRandom__Group__0__Impl
+	rule__AttributeFillerUnsignedDoubleRandom__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedDoubleRandom__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerUnsignedDoubleRandomAccess().getFillerUnsignedDoubleRandomKeyword_0()); }
+	'filler-unsigned-double-random'
+	{ after(grammarAccess.getAttributeFillerUnsignedDoubleRandomAccess().getFillerUnsignedDoubleRandomKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedDoubleRandom__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerUnsignedDoubleRandom__Group__1__Impl
+	rule__AttributeFillerUnsignedDoubleRandom__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedDoubleRandom__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerUnsignedDoubleRandomAccess().getLeftParenthesisKeyword_1()); }
+	'('
+	{ after(grammarAccess.getAttributeFillerUnsignedDoubleRandomAccess().getLeftParenthesisKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedDoubleRandom__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerUnsignedDoubleRandom__Group__2__Impl
+	rule__AttributeFillerUnsignedDoubleRandom__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedDoubleRandom__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	(
+		{ before(grammarAccess.getAttributeFillerUnsignedDoubleRandomAccess().getItemsAssignment_2()); }
+		(rule__AttributeFillerUnsignedDoubleRandom__ItemsAssignment_2)
+		{ after(grammarAccess.getAttributeFillerUnsignedDoubleRandomAccess().getItemsAssignment_2()); }
+	)
+	(
+		{ before(grammarAccess.getAttributeFillerUnsignedDoubleRandomAccess().getItemsAssignment_2()); }
+		(rule__AttributeFillerUnsignedDoubleRandom__ItemsAssignment_2)*
+		{ after(grammarAccess.getAttributeFillerUnsignedDoubleRandomAccess().getItemsAssignment_2()); }
+	)
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedDoubleRandom__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerUnsignedDoubleRandom__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedDoubleRandom__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerUnsignedDoubleRandomAccess().getRightParenthesisKeyword_3()); }
+	')'
+	{ after(grammarAccess.getAttributeFillerUnsignedDoubleRandomAccess().getRightParenthesisKeyword_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AttributeFillerUnsignedIntegerRange__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerUnsignedIntegerRange__Group__0__Impl
+	rule__AttributeFillerUnsignedIntegerRange__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedIntegerRange__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerUnsignedIntegerRangeAccess().getAttributeFillerUnsignedIntegerRangeAction_0()); }
+	()
+	{ after(grammarAccess.getAttributeFillerUnsignedIntegerRangeAccess().getAttributeFillerUnsignedIntegerRangeAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedIntegerRange__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerUnsignedIntegerRange__Group__1__Impl
+	rule__AttributeFillerUnsignedIntegerRange__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedIntegerRange__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerUnsignedIntegerRangeAccess().getFillerUnsignedIntegerRangeKeyword_1()); }
+	'filler-unsigned-integer-range'
+	{ after(grammarAccess.getAttributeFillerUnsignedIntegerRangeAccess().getFillerUnsignedIntegerRangeKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedIntegerRange__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerUnsignedIntegerRange__Group__2__Impl
+	rule__AttributeFillerUnsignedIntegerRange__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedIntegerRange__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerUnsignedIntegerRangeAccess().getGroup_2()); }
+	(rule__AttributeFillerUnsignedIntegerRange__Group_2__0)?
+	{ after(grammarAccess.getAttributeFillerUnsignedIntegerRangeAccess().getGroup_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedIntegerRange__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerUnsignedIntegerRange__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedIntegerRange__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerUnsignedIntegerRangeAccess().getGroup_3()); }
+	(rule__AttributeFillerUnsignedIntegerRange__Group_3__0)?
+	{ after(grammarAccess.getAttributeFillerUnsignedIntegerRangeAccess().getGroup_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AttributeFillerUnsignedIntegerRange__Group_2__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerUnsignedIntegerRange__Group_2__0__Impl
+	rule__AttributeFillerUnsignedIntegerRange__Group_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedIntegerRange__Group_2__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerUnsignedIntegerRangeAccess().getAlternatives_2_0()); }
+	(rule__AttributeFillerUnsignedIntegerRange__Alternatives_2_0)?
+	{ after(grammarAccess.getAttributeFillerUnsignedIntegerRangeAccess().getAlternatives_2_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedIntegerRange__Group_2__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerUnsignedIntegerRange__Group_2__1__Impl
+	rule__AttributeFillerUnsignedIntegerRange__Group_2__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedIntegerRange__Group_2__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerUnsignedIntegerRangeAccess().getUpToIncludingKeyword_2_1()); }
+	'upToIncluding'
+	{ after(grammarAccess.getAttributeFillerUnsignedIntegerRangeAccess().getUpToIncludingKeyword_2_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedIntegerRange__Group_2__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerUnsignedIntegerRange__Group_2__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedIntegerRange__Group_2__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerUnsignedIntegerRangeAccess().getAlternatives_2_2()); }
+	(rule__AttributeFillerUnsignedIntegerRange__Alternatives_2_2)
+	{ after(grammarAccess.getAttributeFillerUnsignedIntegerRangeAccess().getAlternatives_2_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AttributeFillerUnsignedIntegerRange__Group_3__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerUnsignedIntegerRange__Group_3__0__Impl
+	rule__AttributeFillerUnsignedIntegerRange__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedIntegerRange__Group_3__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerUnsignedIntegerRangeAccess().getRoundedKeyword_3_0()); }
+	'rounded'
+	{ after(grammarAccess.getAttributeFillerUnsignedIntegerRangeAccess().getRoundedKeyword_3_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedIntegerRange__Group_3__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerUnsignedIntegerRange__Group_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedIntegerRange__Group_3__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerUnsignedIntegerRangeAccess().getRoundedAssignment_3_1()); }
+	(rule__AttributeFillerUnsignedIntegerRange__RoundedAssignment_3_1)
+	{ after(grammarAccess.getAttributeFillerUnsignedIntegerRangeAccess().getRoundedAssignment_3_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AttributeFillerUnsignedIntegerRandom__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerUnsignedIntegerRandom__Group__0__Impl
+	rule__AttributeFillerUnsignedIntegerRandom__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedIntegerRandom__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerUnsignedIntegerRandomAccess().getFillerUnsignedIntegerRandomKeyword_0()); }
+	'filler-unsigned-integer-random'
+	{ after(grammarAccess.getAttributeFillerUnsignedIntegerRandomAccess().getFillerUnsignedIntegerRandomKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedIntegerRandom__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerUnsignedIntegerRandom__Group__1__Impl
+	rule__AttributeFillerUnsignedIntegerRandom__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedIntegerRandom__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerUnsignedIntegerRandomAccess().getLeftParenthesisKeyword_1()); }
+	'('
+	{ after(grammarAccess.getAttributeFillerUnsignedIntegerRandomAccess().getLeftParenthesisKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedIntegerRandom__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerUnsignedIntegerRandom__Group__2__Impl
+	rule__AttributeFillerUnsignedIntegerRandom__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedIntegerRandom__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	(
+		{ before(grammarAccess.getAttributeFillerUnsignedIntegerRandomAccess().getItemsAssignment_2()); }
+		(rule__AttributeFillerUnsignedIntegerRandom__ItemsAssignment_2)
+		{ after(grammarAccess.getAttributeFillerUnsignedIntegerRandomAccess().getItemsAssignment_2()); }
+	)
+	(
+		{ before(grammarAccess.getAttributeFillerUnsignedIntegerRandomAccess().getItemsAssignment_2()); }
+		(rule__AttributeFillerUnsignedIntegerRandom__ItemsAssignment_2)*
+		{ after(grammarAccess.getAttributeFillerUnsignedIntegerRandomAccess().getItemsAssignment_2()); }
+	)
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedIntegerRandom__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__AttributeFillerUnsignedIntegerRandom__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AttributeFillerUnsignedIntegerRandom__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getAttributeFillerUnsignedIntegerRandomAccess().getRightParenthesisKeyword_3()); }
+	')'
+	{ after(grammarAccess.getAttributeFillerUnsignedIntegerRandomAccess().getRightParenthesisKeyword_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SignedNumber__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__SignedNumber__Group__0__Impl
+	rule__SignedNumber__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignedNumber__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getSignedNumberAccess().getHyphenMinusKeyword_0()); }
+	('-')?
+	{ after(grammarAccess.getSignedNumberAccess().getHyphenMinusKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignedNumber__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__SignedNumber__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignedNumber__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getSignedNumberAccess().getUnsignedNumberParserRuleCall_1()); }
+	ruleUnsignedNumber
+	{ after(grammarAccess.getSignedNumberAccess().getUnsignedNumberParserRuleCall_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__UnsignedNumber__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__UnsignedNumber__Group__0__Impl
+	rule__UnsignedNumber__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__UnsignedNumber__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getUnsignedNumberAccess().getINTTerminalRuleCall_0()); }
+	RULE_INT
+	{ after(grammarAccess.getUnsignedNumberAccess().getINTTerminalRuleCall_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__UnsignedNumber__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__UnsignedNumber__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__UnsignedNumber__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getUnsignedNumberAccess().getGroup_1()); }
+	(rule__UnsignedNumber__Group_1__0)?
+	{ after(grammarAccess.getUnsignedNumberAccess().getGroup_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__UnsignedNumber__Group_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__UnsignedNumber__Group_1__0__Impl
+	rule__UnsignedNumber__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__UnsignedNumber__Group_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getUnsignedNumberAccess().getFullStopKeyword_1_0()); }
+	'.'
+	{ after(grammarAccess.getUnsignedNumberAccess().getFullStopKeyword_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__UnsignedNumber__Group_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__UnsignedNumber__Group_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__UnsignedNumber__Group_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getUnsignedNumberAccess().getINTTerminalRuleCall_1_1()); }
+	RULE_INT
+	{ after(grammarAccess.getUnsignedNumberAccess().getINTTerminalRuleCall_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SINT__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__SINT__Group__0__Impl
+	rule__SINT__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SINT__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getSINTAccess().getHyphenMinusKeyword_0()); }
+	('-')?
+	{ after(grammarAccess.getSINTAccess().getHyphenMinusKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SINT__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__SINT__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SINT__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getSINTAccess().getINTTerminalRuleCall_1()); }
+	RULE_INT
+	{ after(grammarAccess.getSINTAccess().getINTTerminalRuleCall_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XImportDeclaration__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XImportDeclaration__Group__0__Impl
+	rule__XImportDeclaration__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XImportDeclaration__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXImportDeclarationAccess().getOXImportDeclarationAction_0()); }
+	()
+	{ after(grammarAccess.getXImportDeclarationAccess().getOXImportDeclarationAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XImportDeclaration__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XImportDeclaration__Group__1__Impl
+	rule__XImportDeclaration__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XImportDeclaration__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXImportDeclarationAccess().getImportKeyword_1()); }
+	'import'
+	{ after(grammarAccess.getXImportDeclarationAccess().getImportKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XImportDeclaration__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XImportDeclaration__Group__2__Impl
+	rule__XImportDeclaration__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XImportDeclaration__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXImportDeclarationAccess().getAlternatives_2()); }
+	(rule__XImportDeclaration__Alternatives_2)
+	{ after(grammarAccess.getXImportDeclarationAccess().getAlternatives_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XImportDeclaration__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XImportDeclaration__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XImportDeclaration__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXImportDeclarationAccess().getSemicolonKeyword_3()); }
+	(';')?
+	{ after(grammarAccess.getXImportDeclarationAccess().getSemicolonKeyword_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XImportDeclaration__Group_2_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XImportDeclaration__Group_2_0__0__Impl
+	rule__XImportDeclaration__Group_2_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XImportDeclaration__Group_2_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXImportDeclarationAccess().getStaticAssignment_2_0_0()); }
+	(rule__XImportDeclaration__StaticAssignment_2_0_0)
+	{ after(grammarAccess.getXImportDeclarationAccess().getStaticAssignment_2_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XImportDeclaration__Group_2_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XImportDeclaration__Group_2_0__1__Impl
+	rule__XImportDeclaration__Group_2_0__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XImportDeclaration__Group_2_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXImportDeclarationAccess().getExtensionAssignment_2_0_1()); }
+	(rule__XImportDeclaration__ExtensionAssignment_2_0_1)?
+	{ after(grammarAccess.getXImportDeclarationAccess().getExtensionAssignment_2_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XImportDeclaration__Group_2_0__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XImportDeclaration__Group_2_0__2__Impl
+	rule__XImportDeclaration__Group_2_0__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XImportDeclaration__Group_2_0__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_2_0_2()); }
+	(rule__XImportDeclaration__ImportedTypeAssignment_2_0_2)
+	{ after(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_2_0_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XImportDeclaration__Group_2_0__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XImportDeclaration__Group_2_0__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XImportDeclaration__Group_2_0__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXImportDeclarationAccess().getAlternatives_2_0_3()); }
+	(rule__XImportDeclaration__Alternatives_2_0_3)
+	{ after(grammarAccess.getXImportDeclarationAccess().getAlternatives_2_0_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XImportDeclaration__Group_2_3__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XImportDeclaration__Group_2_3__0__Impl
+	rule__XImportDeclaration__Group_2_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XImportDeclaration__Group_2_3__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXImportDeclarationAccess().getFqnImportAssignment_2_3_0()); }
+	(rule__XImportDeclaration__FqnImportAssignment_2_3_0)
+	{ after(grammarAccess.getXImportDeclarationAccess().getFqnImportAssignment_2_3_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XImportDeclaration__Group_2_3__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XImportDeclaration__Group_2_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XImportDeclaration__Group_2_3__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXImportDeclarationAccess().getImportedFullyQualifiedNameAssignment_2_3_1()); }
+	(rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1)
+	{ after(grammarAccess.getXImportDeclarationAccess().getImportedFullyQualifiedNameAssignment_2_3_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotation__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAnnotation__Group__0__Impl
+	rule__XAnnotation__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotation__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAnnotationAccess().getXAnnotationAction_0()); }
+	()
+	{ after(grammarAccess.getXAnnotationAccess().getXAnnotationAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotation__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAnnotation__Group__1__Impl
+	rule__XAnnotation__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotation__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAnnotationAccess().getCommercialAtKeyword_1()); }
+	'@'
+	{ after(grammarAccess.getXAnnotationAccess().getCommercialAtKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotation__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAnnotation__Group__2__Impl
+	rule__XAnnotation__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotation__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}